public void Build() { ValidateSchema(); var schemaRequiredFields = requiredFieldFactory.GetRequiredFields(message.GetType()); var schema = new AgreementSchema(providerName, consumerName, description, metaData, message, schemaRequiredFields); agreementRecorder.Record(schema); }
public void Verify() { ValidateVerifier(); var schemaRequiredFields = requiredFieldFactory.GetRequiredFields(message.GetType()); var provierSchema = new AgreementSchema(providerName, consumerName, description, metaData, message, schemaRequiredFields); var consumerSchema = agreementReader.Read(); provierSchema.Equals(consumerSchema); }
public void Record(AgreementSchema schema) { if (!Directory.Exists(servicesAgreementConfig.AgreementPath)) { Directory.CreateDirectory(servicesAgreementConfig.AgreementPath); } var serializedSchema = JsonConvert.SerializeObject(schema, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto, ObjectCreationHandling = ObjectCreationHandling.Replace }); File.WriteAllText(Path.Combine(servicesAgreementConfig.AgreementPath, $"{schema.Provider}-{schema.Consumer}-{schema.Message.GetType().Name}{JsonExtension}"), serializedSchema, Encoding.UTF8); }
public static void BaseVerification(AgreementSchema providerSchema, AgreementSchema consumerSchema) { if (!consumerSchema.Provider.Equals(providerSchema.Provider)) { throw new AgreementViolationException(string.Format(ExceptionMessages.InvalidProviderName, consumerSchema.Provider, providerSchema.Provider)); } if (!consumerSchema.Consumer.Equals(providerSchema.Consumer)) { throw new AgreementViolationException(string.Format(ExceptionMessages.InvalidConsumerName, consumerSchema.Consumer, providerSchema.Consumer)); } var providerMetadata = JsonConvert.SerializeObject(providerSchema.MetaData); var consumerMetadata = JsonConvert.SerializeObject(consumerSchema.MetaData); if (!string.Equals(providerMetadata, consumerMetadata)) { throw new AgreementViolationException(string.Format(ExceptionMessages.InvalidMetadata, consumerMetadata, providerMetadata)); } }
public static void Verify(AgreementSchema providerSchema, AgreementSchema consumerSchema) { BaseVerification(providerSchema, consumerSchema); Verify(providerSchema.RequiredFields, consumerSchema.RequiredFields); }