RepeatedFieldTest.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Collections.Generic;
  3. using Google.Protobuf.Collections;
  4. using NUnit.Framework;
  5. namespace Google.Protobuf
  6. {
  7. public class RepeatedFieldTest
  8. {
  9. [Test]
  10. public void NullValuesRejected()
  11. {
  12. var list = new RepeatedField<string>();
  13. Assert.Throws<ArgumentNullException>(() => list.Add((string) null));
  14. Assert.Throws<ArgumentNullException>(() => list.Add((IEnumerable<string>) null));
  15. Assert.Throws<ArgumentNullException>(() => list.Add((RepeatedField<string>)null));
  16. Assert.Throws<ArgumentNullException>(() => list.Contains(null));
  17. Assert.Throws<ArgumentNullException>(() => list.IndexOf(null));
  18. }
  19. [Test]
  20. public void Add_SingleItem()
  21. {
  22. var list = new RepeatedField<string>();
  23. list.Add("foo");
  24. Assert.AreEqual(1, list.Count);
  25. Assert.AreEqual("foo", list[0]);
  26. }
  27. [Test]
  28. public void Add_Sequence()
  29. {
  30. var list = new RepeatedField<string>();
  31. list.Add(new[] { "foo", "bar" });
  32. Assert.AreEqual(2, list.Count);
  33. Assert.AreEqual("foo", list[0]);
  34. Assert.AreEqual("bar", list[1]);
  35. }
  36. [Test]
  37. public void Add_RepeatedField()
  38. {
  39. var list = new RepeatedField<string> { "original" };
  40. list.Add(new RepeatedField<string> { "foo", "bar" });
  41. Assert.AreEqual(3, list.Count);
  42. Assert.AreEqual("original", list[0]);
  43. Assert.AreEqual("foo", list[1]);
  44. Assert.AreEqual("bar", list[2]);
  45. }
  46. }
  47. }