aboutsummaryrefslogtreecommitdiff
path: root/src/ProtoGen.Test/DescriptorUtilTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ProtoGen.Test/DescriptorUtilTest.cs')
-rw-r--r--src/ProtoGen.Test/DescriptorUtilTest.cs69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/ProtoGen.Test/DescriptorUtilTest.cs b/src/ProtoGen.Test/DescriptorUtilTest.cs
new file mode 100644
index 00000000..5674892e
--- /dev/null
+++ b/src/ProtoGen.Test/DescriptorUtilTest.cs
@@ -0,0 +1,69 @@
+using Google.ProtocolBuffers.DescriptorProtos;
+using Google.ProtocolBuffers.Descriptors;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers.ProtoGen {
+ [TestFixture]
+ public class DescriptorUtilTest {
+
+ [Test]
+ public void ExplicitNamespace() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder {
+ Name = "x", Package = "pack", Options = new FileOptions.Builder().SetExtension(CSharpOptions.CSharpNamespace, "Foo.Bar").Build()
+ }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("Foo.Bar", DescriptorUtil.GetNamespace(descriptor));
+ }
+
+ [Test]
+ public void NoNamespaceFallsBackToPackage() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x", Package = "pack" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("pack", DescriptorUtil.GetNamespace(descriptor));
+ }
+
+ [Test]
+ public void NoNamespaceOrPackageFallsBackToEmptyString() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("", DescriptorUtil.GetNamespace(descriptor));
+ }
+
+ [Test]
+ public void ExplicitlyNamedFileClass() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder {
+ Name = "x", Options = new FileOptions.Builder().SetExtension(CSharpOptions.CSharpUmbrellaClassname, "Foo").Build()
+ }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("Foo", DescriptorUtil.GetUmbrellaClassName(descriptor));
+ }
+
+ [Test]
+ public void ImplicitFileClassWithProtoSuffix() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar.proto" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("FooBar", DescriptorUtil.GetUmbrellaClassName(descriptor));
+ }
+
+ [Test]
+ public void ImplicitFileClassWithProtoDevelSuffix() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar.protodevel" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("FooBar", DescriptorUtil.GetUmbrellaClassName(descriptor));
+ }
+
+ [Test]
+ public void ImplicitFileClassWithNoSuffix() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("FooBar", DescriptorUtil.GetUmbrellaClassName(descriptor));
+ }
+
+ [Test]
+ public void ImplicitFileClassWithDirectoryStructure() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x/y/foo_bar" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("FooBar", DescriptorUtil.GetUmbrellaClassName(descriptor));
+ }
+ }
+}