public void GivenAResourceWithoutInvalidId_WhenValidatingUpsert_ThenInvalidShouldBeReturned(string id) { var validator = new UpsertResourceValidator(new NarrativeHtmlSanitizer(NullLogger <NarrativeHtmlSanitizer> .Instance), new ModelAttributeValidator()); var resource = Samples.GetDefaultObservation() .UpdateId(id); var upsertResourceRequest = new UpsertResourceRequest(resource); var result = validator.Validate(upsertResourceRequest); Assert.False(result.IsValid); }
public void GivenConfigOrHeader_WhenValidatingUpsert_ThenProfileValidationShouldOrShouldntBeCalled(bool configValue, bool?headerValue, bool shouldCallProfileValidation) { var contextAccessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >(); var profileValidator = Substitute.For <IProfileValidator>(); var config = Substitute.For <IOptions <CoreFeatureConfiguration> >(); config.Value.Returns(new CoreFeatureConfiguration() { ProfileValidationOnUpdate = configValue }); var headers = new Dictionary <string, StringValues>(); if (headerValue != null) { headers.Add(KnownHeaders.ProfileValidation, new StringValues(headerValue.Value.ToString())); } contextAccessor.RequestContext.RequestHeaders.Returns(headers); var validator = new UpsertResourceValidator( new ModelAttributeValidator(), new NarrativeHtmlSanitizer(NullLogger <NarrativeHtmlSanitizer> .Instance), profileValidator, contextAccessor, config); var resource = Samples.GetDefaultObservation(); var upsertResourceRequest = new UpsertResourceRequest(resource); validator.Validate(upsertResourceRequest); if (shouldCallProfileValidation) { profileValidator.Received().TryValidate(Arg.Any <ITypedElement>(), Arg.Any <string>()); } else { profileValidator.DidNotReceive().TryValidate(Arg.Any <ITypedElement>(), Arg.Any <string>()); } }
public void GivenAResourceWithoutInvalidId_WhenValidatingUpsert_ThenInvalidShouldBeReturned(string id) { var contextAccessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >(); var profileValidator = Substitute.For <IProfileValidator>(); var config = Substitute.For <IOptions <CoreFeatureConfiguration> >(); config.Value.Returns(new CoreFeatureConfiguration()); contextAccessor.RequestContext.RequestHeaders.Returns(new Dictionary <string, StringValues>()); var validator = new UpsertResourceValidator( new ModelAttributeValidator(), new NarrativeHtmlSanitizer(NullLogger <NarrativeHtmlSanitizer> .Instance), profileValidator, contextAccessor, config); var resource = Samples.GetDefaultObservation() .UpdateId(id); var upsertResourceRequest = new UpsertResourceRequest(resource); var result = validator.Validate(upsertResourceRequest); Assert.False(result.IsValid); }