private void BuildSutDependencies <T>(T data, string routeName, string url, string method) where T : class { _mockHateoasContext .SetupAllProperties() .Setup(x => x.GetApplicableLinkBuilders(data)) .Returns(new IHateoasLinkBuilder[] { new HateoasLinkBuilder <T>(routeName) }); _mockUrlHelper.Setup(x => x.Link(It.IsAny <string>(), It.IsAny <object>())).Returns(url); var actionDescriptors = new List <ActionDescriptor> { new ActionDescriptor { AttributeRouteInfo = new AttributeRouteInfo { Name = routeName }, ActionConstraints = new List <IActionConstraintMetadata> { new HttpMethodActionConstraint(new List <string> { method }) } } }; _mockActionDescriptorCollectionProvider .Setup(x => x.ActionDescriptors) .Returns(new ActionDescriptorCollection(actionDescriptors, 1)); _sut = new Hateoas(_mockHateoasContext.Object, _mockUrlHelper.Object, _mockActionDescriptorCollectionProvider.Object); }
public NotaFiscalController(NotaFiscalContext database) { this.Database = database; HATEOAS = new Hateoas("localhost:5001/v1/NotaFiscal"); HATEOAS.AddAction("get_notafiscal", "GET"); HATEOAS.AddAction("edit_notafiscal", "PATCH"); }
public FornecedoresController(ApplicationDbContext database) { _database = database; Hateoas = new Hateoas("localhost:5001/api/v1/Fornecedores"); Hateoas.AddAction("BUSCAR_FORNECEDOR", "GET"); Hateoas.AddAction("DELETAR_FORNECEDOR", "DELETE"); Hateoas.AddAction("EDITAR_FORNECEDOR", "PUT"); Hateoas.AddAction("EDITAR_FORNECEDOR", "PATCH"); }
public ClientesController(ApplicationDbContext database) { _database = database; Hateoas = new Hateoas("localhost:5001/api/v1/Clientes"); Hateoas.AddAction("BUSCAR_CLIENTE", "GET"); Hateoas.AddAction("DELETAR_CLIENTE", "DELETE"); Hateoas.AddAction("EDITAR_CLIENTE", "PUT"); Hateoas.AddAction("EDITAR_CLIENTE", "PATCH"); }
public ProdutosController(ApplicationDbContext database) { _database = database; Hateoas = new Hateoas("localhost:5001/api/v1/Produtos"); Hateoas.AddAction("BUSCAR_PRODUTO", "GET"); Hateoas.AddAction("DELETAR_PRODUTO", "DELETE"); Hateoas.AddAction("EDITAR_PRODUTO", "PUT"); Hateoas.AddAction("EDITAR_PRODUTO", "PATCH"); }
public ClientesController(NotaFiscalContext database) { this._database = database; HATEOAS = new Hateoas("localhost:5001/v1/Clientes"); HATEOAS.AddAction("get_cliente", "GET"); HATEOAS.AddAction("delete_cliente", "DELETE"); HATEOAS.AddAction("edit_cliente", "PATCH"); }
public VendasController(ApplicationDbContext database) { _database = database; Hateoas = new Hateoas("localhost:5001/api/v1/Vendas"); Hateoas.AddAction("BUSCAR_VENDA", "GET"); Hateoas.AddAction("DELETAR_VENDA", "DELETE"); Hateoas.AddAction("EDITAR_VENDA", "PUT"); Hateoas.AddAction("EDITAR_VENDA", "PATCH"); }
public VendasController(DataContext database, IMapper mapper) { this.Mapper = mapper; Database = database; HATEOAS = new Hateoas("localhost:5001/api/vendas"); HATEOAS.AddAction("get_venda", "GET"); HATEOAS.AddAction("edit_venda", "PATCH"); HATEOAS.AddAction("update_venda", "PUT"); }
public FornecedoresController(DataContext database, IMapper mapper) { this.Mapper = mapper; Database = database; HATEOAS = new Hateoas("localhost:5001/api/fornecedores"); HATEOAS.AddAction("get_fornecedor", "GET"); HATEOAS.AddAction("edit_fornecedor", "PATCH"); HATEOAS.AddAction("update_fornecedor", "PUT"); HATEOAS.AddAction("delete_fornecedor", "DELETE"); }
public ProdutosController(NotaFiscalContext database) { this._database = database; //Criação do objeto HATEOS HATEOAS = new Hateoas("localhost:5001/v1/Produtos"); HATEOAS.AddAction("get_product", "GET"); HATEOAS.AddAction("delete_product", "DELETE"); HATEOAS.AddAction("edit_product", "PATCH"); }
public ClientesController(DataContext database, IMapper mapper) { this.Mapper = mapper; this.Database = database; HATEOAS = new Hateoas("localhost:5001/api/clientes"); HATEOAS.AddAction("get_cliente", "GET"); HATEOAS.AddAction("edit_cliente", "PATCH"); HATEOAS.AddAction("update_cliente", "PUT"); HATEOAS.AddAction("delete_cliente", "DELETE"); }
public ProdutosController(DataContext database, IMapper mapper) { this.Mapper = mapper; Database = database; HATEOAS = new Hateoas("localhost:5001/api/produtos"); HATEOAS.AddAction("get_produto", "GET"); HATEOAS.AddAction("edit_produto", "PATCH"); HATEOAS.AddAction("update_produto", "PUT"); HATEOAS.AddAction("delete_produto", "DELETE"); }
public void StartupOverloadShouldCallCreateAndCallRegistrationClassOnce() { // arrange & act & assert Hateoas.Startup <RegistrationClass>( new HttpConfigurationWrapper(new HttpConfiguration()), default(IAuthorizationProvider), default(IDependencyResolver)); RegistrationClass.ConstructorCalls.Should().Be(1); RegistrationClass.RegistrationCalls.Should().Be(1); }
public static void Register(HttpConfiguration config) { var container = UnityConfig.GetConfiguredContainer(); FilterProviders.Providers.Remove(FilterProviders.Providers.OfType <FilterAttributeFilterProvider>().First()); FilterProviders.Providers.Add(new Microsoft.Practices.Unity.Mvc.UnityFilterAttributeFilterProvider(container)); DependencyResolver.SetResolver(new Microsoft.Practices.Unity.Mvc.UnityDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new Microsoft.Practices.Unity.WebApi.UnityDependencyResolver(container); // Web API configuration and services Hateoas.Startup <SomeRegistrationClass>(config, dependencyResolver: GlobalConfiguration.Configuration.DependencyResolver, messageSerializers: new List <IMessageSerializer> { new JsonApiMessageSerializer() }); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); var jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter; GlobalConfiguration.Configuration.Formatters.Clear(); GlobalConfiguration.Configuration.Formatters.Add(jsonFormatter); var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, DateFormatHandling = DateFormatHandling.IsoDateFormat, ContractResolver = new CamelCasePropertyNamesContractResolver() }; jsonFormatter.SerializerSettings = settings; jsonFormatter.SerializerSettings.Converters = new List <JsonConverter> { new StringEnumConverter() }; }
public void Generate_InvalidActionDescriptor_ThrowsEception() { // arrange var mockData = new HateoasTestData( "sample-exception", "exceptions", "GET", new Dictionary <string, object> { { "diferentKey", "diferentValue" } }, "{otherValue}"); MockHateoasContext(mockData); _sut = new Hateoas(_mockHateoasContext.Object); // act Action actual = () => _sut.HandleRouteTemplate(mockData.ExpectedUrl, mockData.Template, mockData.RouteValues); // assert Assert.Throws <InvalidOperationException>(actual); }
protected async Task <TestResult> RegisterGetAndAssertResponse(bool isHateoasResponse, object data, int linkCount, int commandCount) { Hateoas.Startup(RegistrationClass, _httpConfigurationWrapper, _authorizationProviderMock.Object, _dependencyResolver.Object); var handler = new HateoasHttpHandler(_responseProvider, new List <IMessageSerializer>()) { InnerHandler = new TestHandler((request, cancellationToken) => Response) }; var client = new HttpClient(handler); var result = await client.SendAsync(Request); var testResult = new TestResult(result); await testResult.GetResponseString(); // assert testResult.IsHateoasResponse.Should().Be(isHateoasResponse); testResult.HateoasResponse.Data.Should().Be(data); testResult.HateoasResponse.Links.Should().HaveCount(linkCount); testResult.HateoasResponse.Commands.Should().HaveCount(commandCount); return(testResult); }
private void MockSutDependencies(HateoasTestData mockData) { MockHateoasContext(mockData); MockHttpContextAndActionDescriptors(mockData); _sut = new Hateoas(_mockHateoasContext.Object); }