New options now work fine.
diff --git a/src/ProtocolBuffers.Test/CSharpOptionsTest.cs b/src/ProtocolBuffers.Test/CSharpOptionsTest.cs
new file mode 100644
index 0000000..d22f99d
--- /dev/null
+++ b/src/ProtocolBuffers.Test/CSharpOptionsTest.cs
@@ -0,0 +1,70 @@
+using Google.ProtocolBuffers.DescriptorProtos;
+using Google.ProtocolBuffers.Descriptors;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class DescriptorUtilTest {
+ [Test]
+ public void ExplicitNamespace() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder {
+ Name = "x", Package = "pack", Options = new FileOptions.Builder().SetExtension(CSharpOptions.CSharpFileOptions,
+ new CSharpFileOptions.Builder { Namespace = "Foo.Bar" }.Build()).Build()
+ }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("Foo.Bar", descriptor.CSharpOptions.Namespace);
+ }
+
+ [Test]
+ public void NoNamespaceFallsBackToPackage() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x", Package = "pack" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("pack", descriptor.CSharpOptions.Namespace);
+ }
+
+ [Test]
+ public void NoNamespaceOrPackageFallsBackToEmptyString() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("", descriptor.CSharpOptions.Namespace);
+ }
+
+ [Test]
+ public void ExplicitlyNamedFileClass() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder {
+ Name = "x", Options = new FileOptions.Builder().SetExtension(CSharpOptions.CSharpFileOptions,
+ new CSharpFileOptions.Builder { UmbrellaClassname = "Foo" }.Build()).Build()
+ }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("Foo", descriptor.CSharpOptions.UmbrellaClassname);
+ }
+
+ [Test]
+ public void ImplicitFileClassWithProtoSuffix() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar.proto" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("FooBar", descriptor.CSharpOptions.UmbrellaClassname);
+ }
+
+ [Test]
+ public void ImplicitFileClassWithProtoDevelSuffix() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar.protodevel" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("FooBar", descriptor.CSharpOptions.UmbrellaClassname);
+ }
+
+ [Test]
+ public void ImplicitFileClassWithNoSuffix() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "foo_bar" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("FooBar", descriptor.CSharpOptions.UmbrellaClassname);
+ }
+
+ [Test]
+ public void ImplicitFileClassWithDirectoryStructure() {
+ FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x/y/foo_bar" }.Build();
+ FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null);
+ Assert.AreEqual("FooBar", descriptor.CSharpOptions.UmbrellaClassname);
+ }
+ }
+}
diff --git a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
index 836ee2d..277348c 100644
--- a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
+++ b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
@@ -51,6 +51,7 @@
<Compile Include="CodedInputStreamTest.cs" />
<Compile Include="CodedOutputStreamTest.cs" />
<Compile Include="Collections\PopsicleListTest.cs" />
+ <Compile Include="CSharpOptionsTest.cs" />
<Compile Include="DescriptorsTest.cs" />
<Compile Include="DynamicMessageTest.cs" />
<Compile Include="GeneratedMessageTest.cs" />
diff --git a/src/ProtocolBuffers.Test/TestProtos/___7469.tmp b/src/ProtocolBuffers.Test/TestProtos/___7469.tmp
deleted file mode 100644
index e69de29..0000000
--- a/src/ProtocolBuffers.Test/TestProtos/___7469.tmp
+++ /dev/null