DescriptorUtilTest.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using Google.ProtocolBuffers.DescriptorProtos;
  2. using Google.ProtocolBuffers.Descriptors;
  3. using NUnit.Framework;
  4. namespace Google.ProtocolBuffers.ProtoGen {
  5. [TestFixture]
  6. public class DescriptorUtilTest {
  7. [Test]
  8. public void ExplicitNamespace() {
  9. FileDescriptorProto proto = new FileDescriptorProto.Builder {
  10. Name = "x", Package = "pack", Options = new FileOptions.Builder().SetExtension(CSharpOptions.CSharpNamespace, "Foo.Bar").Build()
  11. }.Build();
  12. FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
  13. Assert.AreEqual("Foo.Bar", DescriptorUtil.GetNamespace(descriptor));
  14. }
  15. [Test]
  16. public void NoNamespaceFallsBackToPackage() {
  17. FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x", Package = "pack" }.Build();
  18. FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
  19. Assert.AreEqual("pack", DescriptorUtil.GetNamespace(descriptor));
  20. }
  21. [Test]
  22. public void NoNamespaceOrPackageFallsBackToEmptyString() {
  23. FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x" }.Build();
  24. FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
  25. Assert.AreEqual("", DescriptorUtil.GetNamespace(descriptor));
  26. }
  27. [Test]
  28. public void ExplicitlyNamedFileClass() {
  29. FileDescriptorProto proto = new FileDescriptorProto.Builder {
  30. Name = "x", Options = new FileOptions.Builder().SetExtension(CSharpOptions.CSharpUmbrellaClassname, "Foo").Build()
  31. }.Build();
  32. FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
  33. Assert.AreEqual("Foo", DescriptorUtil.GetUmbrellaClassName(descriptor));
  34. }
  35. [Test]
  36. public void ImplicitFileClassWithProtoSuffix() {
  37. FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar.proto" }.Build();
  38. FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
  39. Assert.AreEqual("FooBar", DescriptorUtil.GetUmbrellaClassName(descriptor));
  40. }
  41. [Test]
  42. public void ImplicitFileClassWithProtoDevelSuffix() {
  43. FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar.protodevel" }.Build();
  44. FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
  45. Assert.AreEqual("FooBar", DescriptorUtil.GetUmbrellaClassName(descriptor));
  46. }
  47. [Test]
  48. public void ImplicitFileClassWithNoSuffix() {
  49. FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar" }.Build();
  50. FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
  51. Assert.AreEqual("FooBar", DescriptorUtil.GetUmbrellaClassName(descriptor));
  52. }
  53. [Test]
  54. public void ImplicitFileClassWithDirectoryStructure() {
  55. FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x/y/foo_bar" }.Build();
  56. FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
  57. Assert.AreEqual("FooBar", DescriptorUtil.GetUmbrellaClassName(descriptor));
  58. }
  59. }
  60. }