aboutsummaryrefslogtreecommitdiff
path: root/src/ProtoGen.Test/DescriptorUtilTest.cs
blob: 2eb60ef129c8c20db70e7facb48421951b8355d4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using Google.ProtocolBuffers.DescriptorProtos;
using Google.ProtocolBuffers.Descriptors;
using NUnit.Framework;

namespace Google.ProtocolBuffers.ProtoGen {
  [TestFixture]
  public class DescriptorUtilTest {
    /* FIXME: Move these around!
    [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));
    } */
  }
}