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(); Assert.Throws(() => list.Add((string) null)); Assert.Throws(() => list.Add((IEnumerable) null)); Assert.Throws(() => list.Add((RepeatedField)null)); Assert.Throws(() => list.Contains(null)); Assert.Throws(() => list.IndexOf(null)); } [Test] public void Add_SingleItem() { var list = new RepeatedField(); list.Add("foo"); Assert.AreEqual(1, list.Count); Assert.AreEqual("foo", list[0]); } [Test] public void Add_Sequence() { var list = new RepeatedField(); 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 { "original" }; list.Add(new RepeatedField { "foo", "bar" }); Assert.AreEqual(3, list.Count); Assert.AreEqual("original", list[0]); Assert.AreEqual("foo", list[1]); Assert.AreEqual("bar", list[2]); } } }