public void ShouldGenerateWithDataSetSchemaAndImportXmlType() { XmlSchemaTypeGenerator generator = new XmlSchemaTypeGenerator(true); CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\DataSetSchema.xsd")); Assert.AreEqual <int>(2, types.Count); }
public void ShouldGeneratedWithIncludesAndXmlSerializer() { XmlSchemaTypeGenerator generator = new XmlSchemaTypeGenerator(true); CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\Company.xsd")); Assert.IsNotNull(types, "No exception thrown"); }
public void ShouldGenerateWithDefaultSerializer() { XmlSchemaTypeGenerator generator = new XmlSchemaTypeGenerator(false); CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\Company.xsd")); Assert.AreEqual <int>(4, types.Count); }
public void ShouldGetMetadataFromWsdlFile() { string wsdlLocation = ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\MockService.wsdl"); MetadataDiscovery instance = new MetadataDiscovery(wsdlLocation); MetadataSet metadata = instance.InspectMetadata(); AssertMetadataForWsdlFile(metadata); }
public void ShouldGenerateEnumType() { CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\Enums.xsd")); Assert.AreEqual <int>(1, types.Count); Assert.IsTrue(types[0].IsEnum); Assert.AreEqual <int>(4, types[0].Members.Count); }
public void ShouldGetWritenMetadataDocumentsToFiles() { string wsdlLocation = ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\MockService.wsdl"); MetadataDiscovery instance = new MetadataDiscovery(wsdlLocation); string mapFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + @"\Test\", "MockService.map"); DiscoveryClientResultCollection results = instance.WriteMetadata(mapFile); Assert.AreEqual <int>(4, results.Count); }
public void ShouldGenerateCollectionType() { CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\Collections.xsd")); Assert.AreEqual <int>(1, types.Count); Assert.IsTrue(types[0].IsClass); Assert.AreEqual <string>(typeof(List <>).FullName, types[0].BaseTypes[0].BaseType); Assert.AreEqual <int>(1, types[0].BaseTypes[0].TypeArguments.Count); Assert.AreEqual <string>("System.String", types[0].BaseTypes[0].TypeArguments[0].BaseType); }
public void ShouldGenerateContractFromWsdlWithDefaultOptions() { ContractGenerationOptions options = new ContractGenerationOptions(); options.OutputConfiguration = ConfigurationLoader.LoadConfiguration(@"SampleData\Empty.config", "ShouldGenerateContractFromWsdlWithDefaultOptions"); Uri wsdlLocation = new Uri(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\MockService.wsdl")); ContractGenerator generator = new ContractGenerator(options); generator.Generate(GetMetadataSet(wsdlLocation)); ContractGeneratorCommonAsserts(generator, options); }
/// <summary> /// Creates the WSDL importer. /// </summary> /// <param name="wsdlFile">The WSDL file.</param> /// <returns></returns> public static WsdlImporter CreateImporter(string wsdlFile) { MetadataDiscovery discovery = new MetadataDiscovery(ConfigurationLoader.GetConfigurationFilePath(wsdlFile)); ContractGenerator generator = CreateContractGenerator(); WsdlImporter importer = generator.CreateWsdlImporter(discovery.InspectMetadata()); importer.ImportAllEndpoints(); importer.ImportAllContracts(); importer.ImportAllBindings(); ContractGenerator.ThrowOnMetadataConversionErrors(importer.Errors); return(importer); }
public void ShouldGenerateConfigFileWithWsHttpBinding() { ContractGenerationOptions options = new ContractGenerationOptions(); options.OutputConfigurationFile = ConfigurationLoader.GetConfigurationFilePath(@"SampleData\Empty.config", "ShouldGenerateConfigFileWithWsHttpBinding"); ContractGenerator generator = new ContractGenerator(options); generator.Generate(GetMetadataSet(HostAddress)); string configFileContent = File.ReadAllText(options.OutputConfigurationFile); Assert.IsTrue(configFileContent.Contains("<wsHttpBinding>")); }
public void ShouldGenerateAndSaveConfigFile() { ContractGenerationOptions options = new ContractGenerationOptions(); options.OutputConfigurationFile = ConfigurationLoader.GetConfigurationFilePath(@"SampleData\Empty.config", "ShouldGenerateAndSaveConfigFile", true); string originalConfig = File.ReadAllText(options.OutputConfigurationFile); ContractGenerator generator = new ContractGenerator(options); generator.Generate(GetMetadataSet(HostAddress)); Assert.AreNotEqual(originalConfig, File.ReadAllText(options.OutputConfigurationFile)); }
public void ShouldGenerateWithSimpleSchema() { CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\SimpleSchema.xsd")); Assert.AreEqual <int>(1, types.Count); Assert.IsTrue(types[0].IsClass); Assert.AreEqual <string>("element1", types[0].Name); Assert.AreEqual <int>(6, types[0].Members.Count); Assert.AreEqual <string>("Data1", types[0].Members[3].Name); Assert.AreEqual <string>("Data2", types[0].Members[5].Name); Assert.AreEqual("http://tempuri.org/SimpleSchema.xsd", GetNamespaceCustomAttribute(types[0])); }
private string CreateMockImportersAssembly(string assemblyName) { CompilerResults results = DynamicCompilation.CompileAssemblyFromSource( File.ReadAllText(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\MockImporters.cs")), assemblyName); if (results.PathToAssembly == null) { return(null); } return(ConfigurationLoader.GetConfigurationFilePath(results.PathToAssembly)); }
public void ShouldGenerateProtectionLevelSignValueFromWsdlFile() { ContractGenerationOptions options = new ContractGenerationOptions(); ContractGenerator generator = new ContractGenerator(options); Uri wsdlLocation = new Uri(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\MockService.wsdl")); generator.Generate(GetMetadataSet(wsdlLocation)); string proxyClass = GetClassFromCcu(options.CodeProvider, generator.CodeCompileUnit); Assert.IsNotNull(proxyClass); Assert.IsTrue(proxyClass.Contains("ProtectionLevel.Sign"), "Contains ProtectionLevel value."); }
public void ShouldGenerateWithIncludeSchema() { CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\IncludedSchema1.xsd")); Assert.AreEqual <int>(2, types.Count); Assert.IsTrue(types[0].IsClass); Assert.IsTrue(types[1].IsClass); Assert.AreEqual <string>("element1", types[1].Name); Assert.AreEqual <int>(4, types[0].Members.Count); Assert.AreEqual <string>("Data", types[1].Members[3].Name); Assert.AreEqual <string>("element2", types[0].Name); Assert.AreEqual <int>(4, types[1].Members.Count); Assert.AreEqual <string>("SomeData", types[0].Members[3].Name); }
public void ShouldGenerateVBProxy() { ContractGenerationOptions options = new ContractGenerationOptions(); options.CodeProvider = new VBCodeProvider(); ContractGenerator generator = new ContractGenerator(options); Uri wsdlLocation = new Uri(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\MockService.wsdl")); generator.Generate(GetMetadataSet(wsdlLocation)); string proxyClass = GetClassFromCcu(options.CodeProvider, generator.CodeCompileUnit); Assert.IsNotNull(proxyClass); Assert.IsTrue(proxyClass.Contains("Public Sub New()"), "Contains VB code"); }
public void ShouldGenerateWithXmlSchemaImporter() { XmlSchemaTypeGenerator generator = new XmlSchemaTypeGenerator(true); CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\ComplexTypeSchema.xsd")); Assert.AreEqual <int>(2, types.Count); Assert.IsTrue(types[0].IsClass); Assert.IsTrue(types[1].IsClass); Assert.AreEqual <string>("complexType", types[1].Name); Assert.AreEqual <int>(2, types[0].Members.Count); Assert.AreEqual <string>("element1", types[0].Name); Assert.AreEqual <int>(8, types[1].Members.Count); Assert.AreEqual <string>("ComplexData", types[0].Members[1].Name); Assert.AreEqual("http://tempuri.org/ComplexTypeSchema.xsd", ((CodePrimitiveExpression)types[0].CustomAttributes[5].Arguments[0].Value).Value); }
public void ShouldMergeConfigContentWithSameEndpoint() { ContractGenerationOptions options = new ContractGenerationOptions(); options.OutputConfigurationFile = ConfigurationLoader.GetConfigurationFilePath(@"SampleData\Empty.config", "ShouldMergeConfigContentWithSameEndpoint", true); string originalConfig = File.ReadAllText(options.OutputConfigurationFile); ContractGenerator generator = new ContractGenerator(options); MetadataSet metadata = GetMetadataSet(HostAddress); WsdlImporter importer = generator.CreateWsdlImporter(metadata); generator.Generate(importer); // generate twice in order to update and get only one endpoint in config generator.Generate(importer); Assert.AreNotEqual(originalConfig, File.ReadAllText(options.OutputConfigurationFile)); // Assert config file ServiceModelConfigurationManager manager = new ServiceModelConfigurationManager(generator.Configuration); ClientSection client = manager.GetClient(); Assert.AreEqual <int>(2, client.Endpoints.Count); }
public void ShouldGenerateIsNullableCollectionType() { XmlSchemaTypeGenerator generator = new XmlSchemaTypeGenerator(true); CodeCompileUnit unit = generator.GenerateCodeCompileUnit( ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\Restriction.xsd")); Assert.AreEqual <int>(3, unit.Namespaces[0].Types.Count); foreach (CodeAttributeDeclaration attribute in unit.Namespaces[0].Types[0].CustomAttributes) { if (attribute.AttributeType.BaseType == typeof(XmlRootAttribute).FullName) { foreach (CodeAttributeArgument argument in attribute.Arguments) { if (argument.Name == "IsNullable") { Assert.IsFalse((bool)((CodePrimitiveExpression)argument.Value).Value); return; } } } } Assert.Fail("No XmlRootAttribute or IsNullable argument found"); }
public void ShouldNotGenerateWithEmptySchema() { CodeTypeDeclarationCollection types = generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\EmptySchema.xsd")); Assert.AreEqual <int>(0, types.Count); }
public void ThrowOnInvalidInclude() { generator.GenerateTypes(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\InvalidIncludeSchema.xsd")); }
public void ShouldGenerateUriLocation() { CodeTypeDeclarationCollection types = generator.GenerateTypes(new Uri(ConfigurationLoader.GetConfigurationFilePath(@"SampleData\DescriptionModel\SimpleSchema.xsd")).AbsoluteUri); Assert.AreEqual <int>(1, types.Count); }