public void TestWFCHeaderGeneration()
		{
			ProjectMappingManagerSetup.InitializeManager(ServiceProvider, "ProjectMapping.ServiceContractDsl.Tests.xml");
			ServiceContract rootElement = CreateRoot(ServiceContractElementName, ServiceContractElementNamespace);
			WCFServiceContract extender = new WCFServiceContract();
			extender.SessionMode = SessionMode.Required;
			extender.ModelElement = rootElement;
			rootElement.ObjectExtender = extender;
			string content = RunTemplate(rootElement);

			Type generatedType = CompileAndGetType(content);
			ServiceContractAttribute serviceContract = TypeAsserter.AssertAttribute<ServiceContractAttribute>(generatedType);
			Assert.AreEqual<string>(ServiceContractElementName, serviceContract.Name);
			Assert.AreEqual<string>(ServiceContractElementNamespace, serviceContract.Namespace);
			Assert.AreEqual<SessionMode>(SessionMode.Required, serviceContract.SessionMode);
		}
        public void TestWFCHeaderGeneration()
        {
            ProjectMappingManagerSetup.InitializeManager(ServiceProvider, "ProjectMapping.ServiceContractDsl.Tests.xml");
            ServiceContract    rootElement = CreateRoot(ServiceContractElementName, ServiceContractElementNamespace);
            WCFServiceContract extender    = new WCFServiceContract();

            extender.SessionMode       = SessionMode.Required;
            extender.ModelElement      = rootElement;
            rootElement.ObjectExtender = extender;
            string content = RunTemplate(rootElement);

            Type generatedType = CompileAndGetType(content);
            ServiceContractAttribute serviceContract = TypeAsserter.AssertAttribute <ServiceContractAttribute>(generatedType);

            Assert.AreEqual <string>(ServiceContractElementName, serviceContract.Name);
            Assert.AreEqual <string>(ServiceContractElementNamespace, serviceContract.Namespace);
            Assert.AreEqual <SessionMode>(SessionMode.Required, serviceContract.SessionMode);
        }
        private ServiceContract CreateServiceContract(
            ServiceContractModel model, string serviceContractName, string operationName, string requestName, string responseName)
        {
            ServiceContract serviceContract = new ServiceContract(Store);

            serviceContract.ServiceContractModel = model;
            serviceContract.Name = serviceContractName;
            WCFServiceContract serviceContractExtender = new WCFServiceContract();

            serviceContractExtender.ModelElement = serviceContract;
            serviceContract.ObjectExtender       = serviceContractExtender;

            Operation            op1    = new Operation(Store);
            WCFOperationContract wcfOp1 = new WCFOperationContract();

            op1.ObjectExtender  = wcfOp1;
            op1.Name            = operationName;
            op1.Action          = operationName;
            op1.Request         = string.IsNullOrEmpty(requestName) ? null : CreateMessageContract(requestName);
            op1.Response        = string.IsNullOrEmpty(responseName) ? null : CreateMessageContract(responseName);
            op1.ServiceContract = serviceContract;

            return(serviceContract);
        }
		private ServiceContract CreateServiceContract(
			ServiceContractModel model,string serviceContractName, string operationName, string requestName, string responseName)
		{
			ServiceContract serviceContract = new ServiceContract(Store);
			serviceContract.ServiceContractModel = model;
			serviceContract.Name = serviceContractName;
			WCFServiceContract serviceContractExtender = new WCFServiceContract();
			serviceContractExtender.ModelElement = serviceContract;
			serviceContract.ObjectExtender = serviceContractExtender;

			Operation op1 = new Operation(Store);
			WCFOperationContract wcfOp1 = new WCFOperationContract();
			op1.ObjectExtender = wcfOp1;
			op1.Name = operationName;
			op1.Action = operationName;
			op1.Request = string.IsNullOrEmpty(requestName) ? null : CreateMessageContract(requestName);
			op1.Response = string.IsNullOrEmpty(responseName) ? null : CreateMessageContract(responseName);
			op1.ServiceContract = serviceContract;

			return serviceContract;
		}