public async Task Handle_If_Request_Is_Null_Should_Return_Unsuccesful_Response() { GetProductsResponse useCaseResponse = null; // Mock dependencies var mockGetExtensions = new Mock <IGetPagedListFromRepository <Product> >(); var mockResponsesMessagesSettings = new Mock <IOptions <Dto.ResponsesSettings> >(); var mockOutput = new Mock <UseCases.IOutputPort <GetProductsResponse> >(); // Setup mockResponsesMessagesSettings .Setup(x => x.Value) .Returns(TestsConfigurationHelper.ResponsesSettings); mockOutput .Setup(x => x.Handle(It.IsAny <GetProductsResponse>())) .Callback((GetProductsResponse response) => { useCaseResponse = response; }); // Arrange var useCase = new GetProductsUseCase( mockGetExtensions.Object, mockResponsesMessagesSettings.Object); GetProductsRequest request = null; // Act var result = await useCase.Handle(request, mockOutput.Object); // Assert Assert.False(result); Assert.Contains(useCaseResponse.Errores, x => x.Codigo == nameof(TestsConfigurationHelper.ResponsesSettings.RequestMissingErrorMessage)); }
public override void ViewDidLoad() { base.ViewDidLoad(); // Code to start the Xamarin Test Cloud Agent #if ENABLE_TEST_CLOUD Xamarin.Calabash.Start(); #endif using (var scope = AppDelegate.Container.BeginLifetimeScope()) { categoriesUseCase = scope.Resolve <GetCategoriesUseCase>(); salesUseCase = scope.Resolve <GetSalesUseCase>(); productUseCase = scope.Resolve <GetProductsUseCase>(); favoriteProductsUseCase = scope.Resolve <FavoriteProductsUseCase>(); } catalogTableView.RegisterNibForCellReuse(CatalogCell.Nib, "catalogCellId"); catalogTableView.RowHeight = UITableView.AutomaticDimension; catalogTableView.EstimatedRowHeight = 40f; spinner.StartAnimating(); catalogTableView.BackgroundView = spinner; catalogTableView.ReloadData(); _favoritesProducts = favoriteProductsUseCase.Get().ToList(); salesUseCase.Get(GetSalesHandler, ExceptionHandler); miniCartView.Hidden = true; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); using (var scope = App.Container.BeginLifetimeScope()) { categoriesUseCase = scope.Resolve <GetCategoriesUseCase>(); salesUseCase = scope.Resolve <GetSalesUseCase>(); productUseCase = scope.Resolve <GetProductsUseCase>(); favoriteProductsUseCase = scope.Resolve <FavoriteProductsUseCase>(); } salesUseCase.Get(GetSalesHandler, ExceptionHandler); }
public async Task Handle_If_FilterTerm_Is_Provided_Should_Return_Successful_Response_With_Filtered_Products() { GetProductsResponse useCaseResponse = null; var allProducts = TestModelFactory.GetProductSample(); var filterTerm = "brand"; // Mock dependencies var mockGetProducts = new Mock <IGetPagedListFromRepository <Product> >(); var mockResponsesMessagesSettings = new Mock <IOptions <Dto.ResponsesSettings> >(); var mockOutput = new Mock <UseCases.IOutputPort <GetProductsResponse> >(); // Setup mockResponsesMessagesSettings .Setup(x => x.Value) .Returns(TestsConfigurationHelper.ResponsesSettings); mockOutput .Setup(x => x.Handle(It.IsAny <GetProductsResponse>())) .Callback((GetProductsResponse response) => { useCaseResponse = response; }); mockGetProducts .Setup(x => x.GetProducts(It.IsAny <PageParameters>(), It.IsAny <string>())) .ReturnsAsync(new BaseGatewayResponse <PagedList <Product> >(allProducts)); // Arrange var useCase = new GetProductsUseCase( mockGetProducts.Object, mockResponsesMessagesSettings.Object); var request = new GetProductsRequest(new PageParameters(), filterTerm); // Act var result = await useCase.Handle(request, mockOutput.Object); // Assert Assert.True(result); Assert.Equal(useCaseResponse.Products.Count(), allProducts.Count()); }
public async Task Handle_If_Filter_Term_Is_Invalid_Should_Return_Unsuccessful_Response() { GetProductsResponse useCaseResponse = null; var allProducts = TestModelFactory.GetProductSample(); // Mock dependencies var mockGetProducts = new Mock <IGetPagedListFromRepository <Product> >(); var mockResponsesMessagesSettings = new Mock <IOptions <Dto.ResponsesSettings> >(); var mockOutput = new Mock <UseCases.IOutputPort <GetProductsResponse> >(); // Setup mockResponsesMessagesSettings .Setup(x => x.Value) .Returns(TestsConfigurationHelper.ResponsesSettings); mockOutput .Setup(x => x.Handle(It.IsAny <GetProductsResponse>())) .Callback((GetProductsResponse response) => { useCaseResponse = response; }); mockGetProducts .Setup(x => x.GetProducts(It.IsAny <PageParameters>(), It.IsAny <string>())) .ReturnsAsync(new BaseGatewayResponse <PagedList <Product> >(allProducts)); // Arrange var useCase = new GetProductsUseCase( mockGetProducts.Object, mockResponsesMessagesSettings.Object); var request = new GetProductsRequest(new PageParameters(), "&ASDG%&/"); // Act var result = await useCase.Handle(request, mockOutput.Object); // Assert Assert.False(result); Assert.Contains(useCaseResponse.Errores, x => x.Codigo == nameof(TestsConfigurationHelper.ResponsesSettings.InvalidParamErrorMessage)); }