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