Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: third_party/protobuf/csharp/src/Google.Protobuf.Test/Collections/RepeatedFieldTest.cs

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #region Copyright notice and license 1 #region Copyright notice and license
2 // Protocol Buffers - Google's data interchange format 2 // Protocol Buffers - Google's data interchange format
3 // Copyright 2015 Google Inc. All rights reserved. 3 // Copyright 2015 Google Inc. All rights reserved.
4 // https://developers.google.com/protocol-buffers/ 4 // https://developers.google.com/protocol-buffers/
5 // 5 //
6 // Redistribution and use in source and binary forms, with or without 6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are 7 // modification, are permitted provided that the following conditions are
8 // met: 8 // met:
9 // 9 //
10 // * Redistributions of source code must retain the above copyright 10 // * Redistributions of source code must retain the above copyright
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 public void Add_Sequence() 68 public void Add_Sequence()
69 { 69 {
70 var list = new RepeatedField<string>(); 70 var list = new RepeatedField<string>();
71 list.Add(new[] { "foo", "bar" }); 71 list.Add(new[] { "foo", "bar" });
72 Assert.AreEqual(2, list.Count); 72 Assert.AreEqual(2, list.Count);
73 Assert.AreEqual("foo", list[0]); 73 Assert.AreEqual("foo", list[0]);
74 Assert.AreEqual("bar", list[1]); 74 Assert.AreEqual("bar", list[1]);
75 } 75 }
76 76
77 [Test] 77 [Test]
78 public void Add_RepeatedField() 78 public void AddRange_SlowPath()
79 {
80 var list = new RepeatedField<string>();
81 list.AddRange(new[] { "foo", "bar" }.Select(x => x));
82 Assert.AreEqual(2, list.Count);
83 Assert.AreEqual("foo", list[0]);
84 Assert.AreEqual("bar", list[1]);
85 }
86
87 [Test]
88 public void AddRange_SlowPath_NullsProhibited_ReferenceType()
89 {
90 var list = new RepeatedField<string>();
91 // It's okay for this to throw ArgumentNullException if necessary.
92 // It's not ideal, but not awful.
93 Assert.Catch<ArgumentException>(() => list.AddRange(new[] { "foo", n ull }.Select(x => x)));
94 }
95
96 [Test]
97 public void AddRange_SlowPath_NullsProhibited_NullableValueType()
98 {
99 var list = new RepeatedField<int?>();
100 // It's okay for this to throw ArgumentNullException if necessary.
101 // It's not ideal, but not awful.
102 Assert.Catch<ArgumentException>(() => list.AddRange(new[] { 20, (int ?)null }.Select(x => x)));
103 }
104
105 [Test]
106 public void AddRange_Optimized_NonNullableValueType()
107 {
108 var list = new RepeatedField<int>();
109 list.AddRange(new List<int> { 20, 30 });
110 Assert.AreEqual(2, list.Count);
111 Assert.AreEqual(20, list[0]);
112 Assert.AreEqual(30, list[1]);
113 }
114
115 [Test]
116 public void AddRange_Optimized_ReferenceType()
117 {
118 var list = new RepeatedField<string>();
119 list.AddRange(new List<string> { "foo", "bar" });
120 Assert.AreEqual(2, list.Count);
121 Assert.AreEqual("foo", list[0]);
122 Assert.AreEqual("bar", list[1]);
123 }
124
125 [Test]
126 public void AddRange_Optimized_NullableValueType()
127 {
128 var list = new RepeatedField<int?>();
129 list.AddRange(new List<int?> { 20, 30 });
130 Assert.AreEqual(2, list.Count);
131 Assert.AreEqual((int?) 20, list[0]);
132 Assert.AreEqual((int?) 30, list[1]);
133 }
134
135 [Test]
136 public void AddRange_Optimized_NullsProhibited_ReferenceType()
137 {
138 // We don't just trust that a collection with a nullable element typ e doesn't contain nulls
139 var list = new RepeatedField<string>();
140 // It's okay for this to throw ArgumentNullException if necessary.
141 // It's not ideal, but not awful.
142 Assert.Catch<ArgumentException>(() => list.AddRange(new List<string> { "foo", null }));
143 }
144
145 [Test]
146 public void AddRange_Optimized_NullsProhibited_NullableValueType()
147 {
148 // We don't just trust that a collection with a nullable element typ e doesn't contain nulls
149 var list = new RepeatedField<int?>();
150 // It's okay for this to throw ArgumentNullException if necessary.
151 // It's not ideal, but not awful.
152 Assert.Catch<ArgumentException>(() => list.AddRange(new List<int?> { 20, null }));
153 }
154
155 [Test]
156 public void AddRange_AlreadyNotEmpty()
157 {
158 var list = new RepeatedField<int> { 1, 2, 3 };
159 list.AddRange(new List<int> { 4, 5, 6 });
160 CollectionAssert.AreEqual(new[] { 1, 2, 3, 4, 5, 6 }, list);
161 }
162
163 [Test]
164 public void AddRange_RepeatedField()
79 { 165 {
80 var list = new RepeatedField<string> { "original" }; 166 var list = new RepeatedField<string> { "original" };
81 list.Add(new RepeatedField<string> { "foo", "bar" }); 167 list.AddRange(new RepeatedField<string> { "foo", "bar" });
82 Assert.AreEqual(3, list.Count); 168 Assert.AreEqual(3, list.Count);
83 Assert.AreEqual("original", list[0]); 169 Assert.AreEqual("original", list[0]);
84 Assert.AreEqual("foo", list[1]); 170 Assert.AreEqual("foo", list[1]);
85 Assert.AreEqual("bar", list[2]); 171 Assert.AreEqual("bar", list[2]);
86 } 172 }
87 173
88 [Test] 174 [Test]
89 public void RemoveAt_Valid() 175 public void RemoveAt_Valid()
90 { 176 {
91 var list = new RepeatedField<string> { "first", "second", "third" }; 177 var list = new RepeatedField<string> { "first", "second", "third" };
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 [Test] 737 [Test]
652 public void ToString_Struct() 738 public void ToString_Struct()
653 { 739 {
654 var message = new Struct { Fields = { { "foo", new Value { NumberVal ue = 20 } } } }; 740 var message = new Struct { Fields = { { "foo", new Value { NumberVal ue = 20 } } } };
655 var list = new RepeatedField<Struct> { message }; 741 var list = new RepeatedField<Struct> { message };
656 var text = list.ToString(); 742 var text = list.ToString();
657 Assert.AreEqual(text, "[ { \"foo\": 20 } ]", message.ToString()); 743 Assert.AreEqual(text, "[ { \"foo\": 20 } ]", message.ToString());
658 } 744 }
659 } 745 }
660 } 746 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698