diff options
Diffstat (limited to 'csharp/src/ProtocolBuffers.Test/RepeatedFieldTest.cs')
-rw-r--r-- | csharp/src/ProtocolBuffers.Test/RepeatedFieldTest.cs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/csharp/src/ProtocolBuffers.Test/RepeatedFieldTest.cs b/csharp/src/ProtocolBuffers.Test/RepeatedFieldTest.cs new file mode 100644 index 00000000..94e30189 --- /dev/null +++ b/csharp/src/ProtocolBuffers.Test/RepeatedFieldTest.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using Google.Protobuf.Collections; +using NUnit.Framework; + +namespace Google.Protobuf +{ + public class RepeatedFieldTest + { + [Test] + public void NullValuesRejected() + { + var list = new RepeatedField<string>(); + Assert.Throws<ArgumentNullException>(() => list.Add((string) null)); + Assert.Throws<ArgumentNullException>(() => list.Add((IEnumerable<string>) null)); + Assert.Throws<ArgumentNullException>(() => list.Add((RepeatedField<string>)null)); + Assert.Throws<ArgumentNullException>(() => list.Contains(null)); + Assert.Throws<ArgumentNullException>(() => list.IndexOf(null)); + } + + [Test] + public void Add_SingleItem() + { + var list = new RepeatedField<string>(); + list.Add("foo"); + Assert.AreEqual(1, list.Count); + Assert.AreEqual("foo", list[0]); + } + + [Test] + public void Add_Sequence() + { + var list = new RepeatedField<string>(); + list.Add(new[] { "foo", "bar" }); + Assert.AreEqual(2, list.Count); + Assert.AreEqual("foo", list[0]); + Assert.AreEqual("bar", list[1]); + } + + [Test] + public void Add_RepeatedField() + { + var list = new RepeatedField<string>(); + list.Add(new RepeatedField<string> { "foo", "bar" }); + Assert.AreEqual(2, list.Count); + Assert.AreEqual("foo", list[0]); + Assert.AreEqual("bar", list[1]); + } + } +} |