ByteStringTest.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using NUnit.Framework;
  5. namespace Google.ProtocolBuffers {
  6. [TestFixture]
  7. public class ByteStringTest {
  8. [Test]
  9. public void EmptyByteStringHasZeroSize() {
  10. Assert.AreEqual(0, ByteString.Empty.Length);
  11. }
  12. [Test]
  13. public void CopyFromStringWithExplicitEncoding() {
  14. ByteString bs = ByteString.CopyFrom("AB", Encoding.Unicode);
  15. Assert.AreEqual(4, bs.Length);
  16. Assert.AreEqual(65, bs[0]);
  17. Assert.AreEqual(0, bs[1]);
  18. Assert.AreEqual(66, bs[2]);
  19. Assert.AreEqual(0, bs[3]);
  20. }
  21. [Test]
  22. public void IsEmptyWhenEmpty() {
  23. Assert.IsTrue(ByteString.CopyFromUtf8("").IsEmpty);
  24. }
  25. [Test]
  26. public void IsEmptyWhenNotEmpty() {
  27. Assert.IsFalse(ByteString.CopyFromUtf8("X").IsEmpty);
  28. }
  29. [Test]
  30. public void CopyFromByteArrayCopiesContents() {
  31. byte[] data = new byte[1];
  32. data[0] = 10;
  33. ByteString bs = ByteString.CopyFrom(data);
  34. Assert.AreEqual(10, bs[0]);
  35. data[0] = 5;
  36. Assert.AreEqual(10, bs[0]);
  37. }
  38. [Test]
  39. public void ToByteArrayCopiesContents() {
  40. ByteString bs = ByteString.CopyFromUtf8("Hello");
  41. byte[] data = bs.ToByteArray();
  42. Assert.AreEqual('H', data[0]);
  43. Assert.AreEqual('H', bs[0]);
  44. data[0] = 0;
  45. Assert.AreEqual(0, data[0]);
  46. Assert.AreEqual('H', bs[0]);
  47. }
  48. [Test]
  49. public void CopyFromUtf8UsesUtf8() {
  50. ByteString bs = ByteString.CopyFromUtf8("\u20ac");
  51. Assert.AreEqual(3, bs.Length);
  52. Assert.AreEqual(0xe2, bs[0]);
  53. Assert.AreEqual(0x82, bs[1]);
  54. Assert.AreEqual(0xac, bs[2]);
  55. }
  56. [Test]
  57. public void CopyFromPortion() {
  58. byte[] data = new byte[]{0, 1, 2, 3, 4, 5, 6};
  59. ByteString bs = ByteString.CopyFrom(data, 2, 3);
  60. Assert.AreEqual(3, bs.Length);
  61. Assert.AreEqual(2, bs[0]);
  62. Assert.AreEqual(3, bs[1]);
  63. }
  64. [Test]
  65. public void ToStringUtf8() {
  66. ByteString bs = ByteString.CopyFromUtf8("\u20ac");
  67. Assert.AreEqual("\u20ac", bs.ToStringUtf8());
  68. }
  69. [Test]
  70. public void ToStringWithExplicitEncoding() {
  71. ByteString bs = ByteString.CopyFrom("\u20ac", Encoding.Unicode);
  72. Assert.AreEqual("\u20ac", bs.ToString(Encoding.Unicode));
  73. }
  74. }
  75. }