public void TestFindAsync() { var repository = new InMemoryProductsRepository(); var product = repository.FindAsync(2).Result; Assert.NotNull(product); Assert.That(product.ID, Is.EqualTo(2)); }
public void TestGetAll() { var repository = new InMemoryProductsRepository(); var products = repository.GetAllAsync().Result; Assert.NotNull(products); Assert.That(products.Count(), Is.GreaterThan(0)); Assert.That(products.First().Name, Is.EqualTo("XPS15")); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); // registra repository in memory per le categorie services.AddSingleton <ICategoriesRepository, InMemoryCategoriesRepository>(sp => { var categoriesRepo = new InMemoryCategoriesRepository(); categoriesRepo.Add(new Categoria(1, "Networking")); // prodotti presenti nel negozio locale categoriesRepo.Add(new Categoria(20, "Game")); // prodotti da richiedere al fornitore return(categoriesRepo); }); // registra repository in memory per i prodotti services.AddSingleton <IProductsRepository, InMemoryProductsRepository>(sp => { // aggiunge alcuni prodotti nel negozio locale var productsRepo = new InMemoryProductsRepository(); var categoriesRepo = sp.GetService <ICategoriesRepository>(); var networkingCategory = categoriesRepo.GetByDescription("Networking").Result; var router = new Prodotto(1, "Router", networkingCategory); var accessPoint = new Prodotto(2, "Access point", networkingCategory); var switchDevice = new Prodotto(3, "Switch", networkingCategory); productsRepo.Add(router); productsRepo.Add(accessPoint); productsRepo.Add(switchDevice); return(productsRepo); }); services.AddSingleton <IProductsRetrieverFactory, ProductsRetrieverCustomFactory>(sp => { // registra un factory method per definire come verranno ottenuti i prodotti return(new ProductsRetrieverCustomFactory(category => { if (category.Id <= 10) { return new LocalStoreProductsRetriever(category, sp.GetService <IProductsRepository>()); } else { return new RemoteStoreProductsRetriever("https://localhost:5011/", "catalogofornitore", category); } })); }); // registra un servizio per la gestione custom degli errori della pipeline services.AddTransient <IErrorHandlerService, CustomErrorHandlerService>(); }
private static void CreateInMemoryProviders( out IProductsProvider productsProvider, out IReservationsProvider reservationsProvider, out IStocksProvider stocksProvider) { // create in-memory databases var productsRepository = new InMemoryProductsRepository(); var stocksRepository = new InMemoryStocksRepository(); var reservationsRepository = new InMemoryReservationsRepository(); productsProvider = new InMemoryProductsProvider(productsRepository); stocksProvider = new InMemoryStocksProvider(stocksRepository); reservationsProvider = new InMemoryReservationProvider(reservationsRepository); }
public void GetAllProductsFromRepository() { Products products1 = GetProductsName(1, 1, "Test produkt", "Beskrivelse", 22, 22, 2, 1, "billede", "billede text"); InMemoryProductsRepository proRepository = new InMemoryProductsRepository(); proRepository.Add(products1); var controller = GetProductsController(proRepository); var result = controller.Index(); var datamodel = ((ViewResult)result).ViewData.Model as IList <Products>; CollectionAssert.Contains(datamodel.ToList(), products1); }
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services .AddAuthentication("BasicAuthentication") .AddScheme <AuthenticationSchemeOptions, BasicAuthenticationHandler>("BasicAuthentication", null); // registra un semplice sistema di controllo delle credenziali utente ricevute // che in questo caso convalida qualunque username/password // Un sistema più evoluto si appoggerebbe ad un repository di utenti services.AddScoped <IUserAuthenticatorService, EveryUserAuthenticatorService>(); // registra repository in memory per le categorie services.AddSingleton <ICategoriesRepository, InMemoryCategoriesRepository>(sp => { var categoriesRepo = new InMemoryCategoriesRepository(); categoriesRepo.Add(new Categoria(20, "Game")); // categoria di prodotti gestiti dal fornitore return(categoriesRepo); }); // registra repository in memory per i prodotti services.AddSingleton <IProductsRepository, InMemoryProductsRepository>(sp => { // aggiunge alcuni prodotti del fornitore var productsRepo = new InMemoryProductsRepository(); var categoriesRepo = sp.GetService <ICategoriesRepository>(); var networkingCategory = categoriesRepo.GetByDescription("Game").Result; productsRepo.Add(new Prodotto(101, "Playstation", networkingCategory)); productsRepo.Add(new Prodotto(102, "XBox", networkingCategory)); productsRepo.Add(new Prodotto(103, "Nintendo", networkingCategory)); return(productsRepo); }); services.AddSingleton <IProductsRetrieverFactory, ProductsRetrieverCustomFactory>(sp => { // registra una factory per il retriever dei prodotti prelevandoli solo localmente return(new ProductsRetrieverCustomFactory(category => new LocalStoreProductsRetriever(category, sp.GetService <IProductsRepository>()))); }); // registra un servizio per la gestione custom degli errori della pipeline services.AddTransient <IErrorHandlerService, CustomErrorHandlerService>(); }
public void TestAddNewProduct() { var repository = new InMemoryProductsRepository(); var product = new Product() { ID = 0, Name = "My laptop" }; repository.Add(product); Assert.That(repository.NewProductsToAdd.Count(), Is.EqualTo(1)); repository.SaveChangesAsync(); Assert.That(repository.NewProductsToAdd.Count(), Is.EqualTo(0)); Assert.That(InMemoryProductsRepository.Products.Count(), Is.EqualTo(3)); Assert.That(product.ID, Is.GreaterThan(0)); }
public async Task First_id_should_be_set_to_1() { _repository = new InMemoryProductsRepository(); (await _repository.CreateAsync(new CreateProductRepositoryModel { })).Should().Be(1); }