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); }
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); }
public void NoNamespaceOrPackageFallsBackToEmptyString() { FileDescriptorProto proto = new FileDescriptorProto.Builder { Name = "x" }.Build(); FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); Assert.AreEqual("", descriptor.CSharpOptions.Namespace); }
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); }
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); }
public void MissingDependency() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First", DependencyList = { "Second" } }.Build(); FileDescriptorSet set = new FileDescriptorSet { FileList = { first } }; try { Generator.ConvertDescriptors(set); Assert.Fail("Expected exception"); } catch (DependencyResolutionException) { // Expected } }
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); }
public void SecondDependsOnFirst() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First" }.Build(); FileDescriptorProto second = new FileDescriptorProto.Builder { Name = "Second", DependencyList = {"First"} }.Build(); FileDescriptorSet set = new FileDescriptorSet { FileList = { first, second } }; IList<FileDescriptor> converted = Generator.ConvertDescriptors(CSharpFileOptions.DefaultInstance, set); Assert.AreEqual(2, converted.Count); Assert.AreEqual("First", converted[0].Name); Assert.AreEqual(0, converted[0].Dependencies.Count); Assert.AreEqual("Second", converted[1].Name); Assert.AreEqual(1, converted[1].Dependencies.Count); Assert.AreEqual(converted[0], converted[1].Dependencies[0]); }
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); }
public void TwoDistinctFiles() { FileDescriptorProto first = new FileDescriptorProto.Builder {Name = "First"}.Build(); FileDescriptorProto second = new FileDescriptorProto.Builder {Name = "Second"}.Build(); var set = new List<FileDescriptorProto> { first, second }; IList<FileDescriptor> converted = Generator.ConvertDescriptors(CSharpFileOptions.DefaultInstance, set); Assert.AreEqual(2, converted.Count); Assert.AreEqual("First", converted[0].Name); Assert.AreEqual(0, converted[0].Dependencies.Count); Assert.AreEqual("Second", converted[1].Name); Assert.AreEqual(0, converted[1].Dependencies.Count); }
public void FirstDependsOnSecond() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First", DependencyList = {"Second"} }.Build(); FileDescriptorProto second = new FileDescriptorProto.Builder { Name = "Second" }.Build(); FileDescriptorSet set = new FileDescriptorSet { FileList = { first, second } }; IList<FileDescriptor> converted = Generator.ConvertDescriptors(set); Assert.AreEqual(2, converted.Count); Assert.AreEqual("First", converted[0].Name); Assert.AreEqual(1, converted[0].Dependencies.Count); Assert.AreEqual(converted[1], converted[0].Dependencies[0]); Assert.AreEqual("Second", converted[1].Name); Assert.AreEqual(0, converted[1].Dependencies.Count); }
public void MissingDependency() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First", DependencyList = { "Second" } }.Build(); FileDescriptorSet set = new FileDescriptorSet { FileList = { first } }; try { Generator.ConvertDescriptors(set); Assert.Fail("Expected exception"); } catch (DependencyResolutionException) { // Expected } }
public void SelfDependency() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First", DependencyList = { "First" } }.Build(); FileDescriptorSet set = new FileDescriptorSet { FileList = { first } }; try { Generator.ConvertDescriptors(CSharpFileOptions.DefaultInstance, set); Assert.Fail("Expected exception"); } catch (DependencyResolutionException) { // Expected } }
public void SecondDependsOnFirst() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First" }.Build(); FileDescriptorProto second = new FileDescriptorProto.Builder { Name = "Second", DependencyList = { "First" } }.Build(); FileDescriptorSet set = new FileDescriptorSet { FileList = { first, second } }; IList <FileDescriptor> converted = Generator.ConvertDescriptors(CSharpFileOptions.DefaultInstance, set); Assert.AreEqual(2, converted.Count); Assert.AreEqual("First", converted[0].Name); Assert.AreEqual(0, converted[0].Dependencies.Count); Assert.AreEqual("Second", converted[1].Name); Assert.AreEqual(1, converted[1].Dependencies.Count); Assert.AreEqual(converted[0], converted[1].Dependencies[0]); }
public void MissingDependency() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First", DependencyList = { "Second" } }.Build(); var set = new List <FileDescriptorProto> { first }; try { Generator.ConvertDescriptors(CSharpFileOptions.DefaultInstance, set); Assert.Fail("Expected exception"); } catch (DependencyResolutionException) { // Expected } }
public void FirstDependsOnSecond() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First", DependencyList = { "Second" } }.Build(); FileDescriptorProto second = new FileDescriptorProto.Builder { Name = "Second" }.Build(); FileDescriptorSet set = new FileDescriptorSet { FileList = { first, second } }; IList <FileDescriptor> converted = Generator.ConvertDescriptors(set); Assert.AreEqual(2, converted.Count); Assert.AreEqual("First", converted[0].Name); Assert.AreEqual(1, converted[0].Dependencies.Count); Assert.AreEqual(converted[1], converted[0].Dependencies[0]); Assert.AreEqual("Second", converted[1].Name); Assert.AreEqual(0, converted[1].Dependencies.Count); }
public void TwoDistinctFiles() { FileDescriptorProto first = new FileDescriptorProto.Builder { Name = "First" }.Build(); FileDescriptorProto second = new FileDescriptorProto.Builder { Name = "Second" }.Build(); var set = new List <FileDescriptorProto> { first, second }; IList <FileDescriptor> converted = Generator.ConvertDescriptors(CSharpFileOptions.DefaultInstance, set); Assert.AreEqual(2, converted.Count); Assert.AreEqual("First", converted[0].Name); Assert.AreEqual(0, converted[0].Dependencies.Count); Assert.AreEqual("Second", converted[1].Name); Assert.AreEqual(0, converted[1].Dependencies.Count); }
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); }
public void NoNamespaceOrPackageFallsBackToEmptyString() { FileDescriptorProto proto = new FileDescriptorProto.Builder {Name = "x"}.Build(); FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); Assert.AreEqual("", descriptor.CSharpOptions.Namespace); }
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); }
public void SelfDependency() { FileDescriptorProto first = new FileDescriptorProto.Builder {Name = "First", DependencyList = {"First"}}.Build(); var set = new List<FileDescriptorProto> { first }; try { Generator.ConvertDescriptors(CSharpFileOptions.DefaultInstance, set); Assert.Fail("Expected exception"); } catch (DependencyResolutionException) { // Expected } }
public void CircularDependency() { FileDescriptorProto first = new FileDescriptorProto.Builder {Name = "First", DependencyList = {"Second"}}.Build(); FileDescriptorProto second = new FileDescriptorProto.Builder {Name = "Second", DependencyList = {"First"}}.Build(); FileDescriptorSet set = new FileDescriptorSet.Builder { FileList = { first, second } }.Build(); try { Generator.ConvertDescriptors(CSharpFileOptions.DefaultInstance, set); Assert.Fail("Expected exception"); } catch (DependencyResolutionException) { // Expected } }