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() { // arrange var controllerBuilder = new ControllerApiVersionConventionBuilder <UndecoratedController>(); var actionBuilder = new ActionApiVersionConventionBuilder <UndecoratedController>(controllerBuilder); var actionDescriptor = new Mock <HttpActionDescriptor>() { CallBase = true }; actionDescriptor.Setup(ad => ad.GetCustomAttributes <IApiVersionProvider>()).Returns(new Collection <IApiVersionProvider>()); actionBuilder.MapToApiVersion(new ApiVersion(2, 0)); // act actionBuilder.ApplyTo(actionDescriptor.Object); // assert actionDescriptor.Object.GetApiVersionModel().ShouldBeEquivalentTo( new { IsApiVersionNeutral = false, DeclaredApiVersions = new[] { new ApiVersion(2, 0) }, SupportedApiVersions = new[] { new ApiVersion(2, 0) }, DeprecatedApiVersions = new ApiVersion[0], ImplementedApiVersions = new[] { new ApiVersion(2, 0) } }); }
public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_convention() { // arrange var controllerBuilder = new ControllerApiVersionConventionBuilder(typeof(UndecoratedController)); var actionBuilder = new ActionApiVersionConventionBuilder(controllerBuilder); var actionDescriptor = new Mock <HttpActionDescriptor>() { CallBase = true }; var empty = Enumerable.Empty <ApiVersion>(); var controllerVersionInfo = Tuple.Create(empty, empty, empty, empty); actionDescriptor.Setup(ad => ad.GetCustomAttributes <IApiVersionProvider>()).Returns(new Collection <IApiVersionProvider>()); actionDescriptor.Object.Properties[controllerVersionInfo.GetType()] = controllerVersionInfo; actionBuilder.MapToApiVersion(new ApiVersion(2, 0)); // act actionBuilder.ApplyTo(actionDescriptor.Object); // assert actionDescriptor.Object.GetApiVersionModel().Should().BeEquivalentTo( new { IsApiVersionNeutral = false, DeclaredApiVersions = new[] { new ApiVersion(2, 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) } }); }