public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_convention_and_attributes() { // arrange var controllerBuilder = new ControllerApiVersionConventionBuilder(typeof(DecoratedController)); var actionBuilder = new ActionApiVersionConventionBuilder(controllerBuilder); var controllerDescriptor = new HttpControllerDescriptor() { ControllerType = typeof(DecoratedController) }; var method = typeof(DecoratedController).GetMethod(nameof(DecoratedController.Get)); var actionDescriptor = new ReflectedHttpActionDescriptor(controllerDescriptor, method); var empty = Enumerable.Empty <ApiVersion>(); var controllerVersionInfo = Tuple.Create(empty, empty, empty, empty); actionDescriptor.Properties[controllerVersionInfo.GetType()] = controllerVersionInfo; actionBuilder.MapToApiVersion(new ApiVersion(2, 0)) .MapToApiVersion(new ApiVersion(3, 0)); // act actionBuilder.ApplyTo(actionDescriptor); // assert actionDescriptor.GetApiVersionModel().Should().BeEquivalentTo( new { IsApiVersionNeutral = false, DeclaredApiVersions = new[] { new ApiVersion(2, 0), new ApiVersion(3, 0) }, SupportedApiVersions = new ApiVersion[0], DeprecatedApiVersions = new ApiVersion[0], ImplementedApiVersions = new ApiVersion[0], }); }
public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_convention_and_attributes() { // arrange var controllerBuilder = new ControllerApiVersionConventionBuilder <UndecoratedController>(); var actionBuilder = new ActionApiVersionConventionBuilder <UndecoratedController>(controllerBuilder); var controllerDescriptor = new HttpControllerDescriptor() { ControllerType = typeof(DecoratedController) }; var method = typeof(DecoratedController).GetMethod(nameof(DecoratedController.Get)); var actionDescriptor = new ReflectedHttpActionDescriptor(controllerDescriptor, method); actionBuilder.MapToApiVersion(new ApiVersion(2, 0)) .MapToApiVersion(new ApiVersion(3, 0)); // act actionBuilder.ApplyTo(actionDescriptor); // assert actionDescriptor.GetApiVersionModel().ShouldBeEquivalentTo( new { IsApiVersionNeutral = false, DeclaredApiVersions = new[] { new ApiVersion(2, 0), new ApiVersion(3, 0) }, SupportedApiVersions = new[] { new ApiVersion(2, 0), new ApiVersion(3, 0) }, DeprecatedApiVersions = new ApiVersion[0], ImplementedApiVersions = new[] { new ApiVersion(2, 0), new ApiVersion(3, 0) } }); }