コード例 #1
0
        public void Build()
        {
            ValidateSchema();
            var schemaRequiredFields = requiredFieldFactory.GetRequiredFields(message.GetType());
            var schema = new AgreementSchema(providerName, consumerName, description, metaData, message, schemaRequiredFields);

            agreementRecorder.Record(schema);
        }
コード例 #2
0
        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);
        }
コード例 #4
0
        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));
            }
        }
コード例 #5
0
 public static void Verify(AgreementSchema providerSchema, AgreementSchema consumerSchema)
 {
     BaseVerification(providerSchema, consumerSchema);
     Verify(providerSchema.RequiredFields, consumerSchema.RequiredFields);
 }