public void TestShouldUpdateProductWithPersonRelations()
        {
            // Arrange
            SeedDatabase(_options);

            using (var context = new ExampleContext(_options))
            {
                var sut = CreateEfRepository(context);

                int id       = CreateEfQueries(context).GetProducts("No2").Single().Id;
                int personid = CreateEfQueries(context).GetPersons("Second", true).Single().Id;

                // Act
                sut.UpdateProduct(SampleProducts.CreateProductWithPersons(id, "No2", "Updated description.", personid, Role.Writer));
            }

            // Assert
            using (var context = new ExampleContext(_options))
            {
                var result = CreateEfQueries(context).GetProducts().ToList();

                Assert.AreEqual(3, result.Count);
                Assert.AreEqual("Updated description.", result.Single(p => p.Name == "No2").Description);
                Assert.AreEqual(1, result.Single(p => p.Name == "No2").Persons.Count);
                Assert.AreEqual(Role.Writer, result.Single(p => p.Name == "No2").Persons.Single().Role);
            }
        }
        public void TestShouldUpdateProduct()
        {
            // Arrange
            var options = SetDbContextOptions();

            SeedDatabase(options);

            using (var context = new ExampleContext(options))
            {
                var sut = CreateEfRepository(context);

                int id = sut.GetProducts("No2").Single().Id;

                // Act
                sut.UpdateProduct(SampleProducts.CreateProduct(id, "No2", "Updated description."));
            }

            // Assert
            using (var context = new ExampleContext(options))
            {
                var result = context.Products.ToList();

                Assert.Equal(3, result.Count);
                Assert.Equal("Updated description.", result.Single(p => p.Name == "No2").Description);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Generates Partner and Product entities.
        /// </summary>
        public static (List <Product>, List <Partner>) GenerateBaseEntities()
        {
            var products = SampleProducts.GenerateSampleProducts(76);
            var partners = SamplePartners.GetSamplePartners();

            return(products, partners);
        }
        public void TestShouldInsertProductWhenThereAreSomeAlready()
        {
            // Arrange
            var options = SetDbContextOptions();

            SeedDatabase(options);

            using (var context = new ExampleContext(options))
            {
                var sut = CreateEfRepository(context);

                // Act
                var result = sut.AddProduct(SampleProducts.CreateProduct());

                // Assert
                Assert.True(result.Id > 0);
                Assert.Equal("FirstProduct", result.Name);
            }

            using (var context = new ExampleContext(options))
            {
                var result = context.Products.ToList();

                Assert.Equal(4, result.Count);
                Assert.Equal("This is the first product.", result.Single(p => p.Name == "FirstProduct").Description);
            }
        }
        public void TestShouldInsertProductWhenThereAreNone()
        {
            // Arrange
            var options = SetDbContextOptions();

            using (var context = new ExampleContext(options))
            {
                var sut = CreateEfRepository(context);

                // Act
                var result = sut.AddProduct(SampleProducts.CreateProduct());

                // Assert
                Assert.True(result.Id > 0);
                Assert.Equal("FirstProduct", result.Name);
            }

            using (var context = new ExampleContext(options))
            {
                var result = context.Products.ToList();

                Assert.Equal(1, result.Count);
                Assert.Equal("FirstProduct", result.Single().Name);
            }
        }
Esempio n. 6
0
        public static void Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var context = services.GetRequiredService <corporateContext>();
                    SampleFiles.Initialize(context);
                    SampleDepartment.Initialize(context);
                    SampleSpecialities.Initialize(context);
                    SampleStatuses.Initialize(context);
                    SamplePriority.Initialize(context);
                    SampleDifficulties.Initialize(context);
                    SampleWorkers.Initialize(context);
                    SampleTasks.Initialize(context);
                    SampleProducts.Initialize(context);
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService <ILogger <Program> >();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }
            host.Run();
        }
Esempio n. 7
0
        private void RestoreFileContent()
        {
            _dataFile.Value.Returns(new Datafile {
                FileName = ProductsFileName
            });
            var sut = CreateFileHandler();

            sut.Write(SampleProducts.CreateProducts2());
        }
        public void TestShouldDeleteProduct()
        {
            // Arrange
            var sut = CreateInMemoryRepository(SampleProducts.CreateProducts());

            // Act
            sut.RemoveProduct(1);

            // Assert
            Assert.AreEqual(2, sut.GetProducts().Count());
        }
        public void TestShouldUpdateProduct()
        {
            // Arrange
            var sut = CreateInMemoryRepository(SampleProducts.CreateProducts());

            // Act
            sut.UpdateProduct(SampleProducts.CreateProduct(2, "Updated name", "Updated description."));

            // Assert
            Assert.AreEqual("Updated name", sut.GetProducts(e => e.Id == 2).Single().Name);
            Assert.AreEqual("Updated description.", sut.GetProducts(e => e.Id == 2).Single().Description);
        }
        public void TestShouldGetProducts()
        {
            // Arrange
            var sut = CreateInMemoryRepository(SampleProducts.CreateProducts());

            // Act
            var result = sut.GetProducts(n => n.Id == 2).ToList();

            // Assert
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("SecondProduct", result.Single().Name);
        }
        public void TestShouldInsertProductWhenThereAreNone()
        {
            // Arrange
            var sut = CreateInMemoryRepository();

            // Act
            var result = sut.AddProduct(SampleProducts.CreateProduct());

            // Assert
            Assert.AreEqual(1, result.Id);
            Assert.AreEqual("FirstProduct", result.Name);
        }
Esempio n. 12
0
        public void TestShouldSearchProductFromName()
        {
            // Arrange
            var allProducts = SampleProducts.CreateProducts();

            // Act
            var result = Entity.Search <Product>("Second");

            // Assert
            var products = allProducts.Where(result.Compile());

            Assert.AreEqual(2, products.Single().Id);
        }
Esempio n. 13
0
        public void TestShouldMapUpdate()
        {
            // Arrange
            var sut = CreateProduct();

            // Act
            var result = sut.MapUpdate(SampleProducts.CreateProduct(33, "SecondProduct", "This is the second product."), SampleProducts.CreateProduct(2));

            // Assert
            Assert.AreEqual(2, result.Id);
            Assert.AreEqual("SecondProduct", result.Name);
            Assert.AreEqual("This is the second product.", result.Description);
        }
        public void TestShouldRemovePersonFromProductAndNotFindPersonInProduct()
        {
            _queries.GetProduct(1)
                .Returns(SampleProducts.CreateProduct(1));

            _repository.UpdateProduct(SampleProducts.CreateProduct(1));

            // Arrange
            var sut = CreateProductInteractor();

            // Act & Assert
            Assert.ThrowsException<ArgumentNullException>(() => sut.RemovePersonFromProduct(1, 1, Role.Actor));
        }
        public void TestShouldGetAllProducts()
        {
            // Arrange
            _queries.GetProducts()
                .Returns(SampleProducts.CreateProducts());

            var sut = CreateProductInteractor();

            // Act
            var result = sut.GetProducts();

            // Assert
            Assert.AreEqual(3, result.Count);
        }
Esempio n. 16
0
        public void TestShouldGetProductFromName()
        {
            // Arrange
            var products = SampleProducts.CreateProducts();

            // Act
            var result = Entity.Get <Product>("SecondProduct");

            // Assert
            var product = products.SingleOrDefault(result.Compile());

            Assert.IsNotNull(product);
            Assert.AreEqual(2, product.Id);
        }
        public void TestShouldGetProductFromId()
        {
            // Arrange
            _queries.GetProduct(3)
                .ReturnsForAnyArgs(SampleProducts.CreateProduct(3, "ThirdProduct"));

            var sut = CreateProductInteractor();

            // Act
            var result = sut.GetProduct(3);

            // Assert
            Assert.AreEqual("ThirdProduct", result.Name);
        }
        public void TestShouldAddPersonToProductAndPersonAlreadyExist()
        {
            _queries.GetPerson(1)
                .Returns(SamplePersons.CreatePerson(1));

            _queries.GetProduct(1)
                .Returns(SampleProducts.CreateProductWithPersons(1, "", "", 1));

            // Arrange
            var sut = CreateProductInteractor();

            // Act & Assert
            Assert.ThrowsException<TooManyFoundException>(() => sut.AddPersonToProduct(1, 1, Role.Actor));
        }
        public void TestShouldUpdateProductFromId()
        {
            // Arrange
            _repository.UpdateProduct(SampleProducts.CreateProduct(3));
            _queries.GetProduct(3).ReturnsForAnyArgs(SampleProducts.CreateProduct(3));

            var sut = CreateProductInteractor();

            // Act
            var result = sut.UpdateProduct(3, "FirstProduct", "This is the first product.");

            // Assert
            Assert.AreEqual("FirstProduct", result.Name);
        }
        public void TestShouldSearchProductFromName()
        {
            // Arrange
            _queries.GetProducts("Third", true)
                .ReturnsForAnyArgs(SampleProducts.CreateProducts3());

            var sut = CreateProductInteractor();

            // Act
            var result = sut.SearchProducts("Third");

            // Assert
            Assert.AreEqual(3, result.Single().Id);
        }
        public void TestShouldPersistData()
        {
            // Arrange
            var sut = CreateInMemoryRepository(SampleProducts.CreateProducts4());

            // Act
            sut.PersistData();

            // Assert
            var sut2 = CreateInMemoryRepository();

            sut2.FillDataSet();

            Assert.AreEqual(4, sut2.GetProducts().Count());
        }
        public void TestShouldCreateProduct()
        {
            // Arrange
            _repository.AddProduct(SampleProducts.CreateProduct())
                .ReturnsForAnyArgs(SampleProducts.CreateProduct(1));

            var sut = CreateProductInteractor();

            // Act
            var result = sut.CreateProduct("FirstProduct", "This is the first product.");

            // Assert
            Assert.AreEqual(1, result.Id);
            Assert.AreEqual("This is the first product.", result.Description);
        }
        public void TestShouldGetProductsFromNameAndFindsNone()
        {
            // Arrange
            _productInteractor.SearchProducts("Persons")
            .Returns(SampleProducts.CreateProductsEmpty());

            var sut = CreateProductController();

            // Act
            var result = sut.GetProducts("Product");

            // Assert
            var noContentResult = (NoContentResult)result;

            Assert.AreEqual((int)HttpStatusCode.NoContent, noContentResult.StatusCode);
        }
        public void TestShouldRemovePersonFromProduct()
        {
            // Arrange
            _queries.GetProduct(1)
                .Returns(SampleProducts.CreateProductWithPersons(1, "", "", 1));

            _repository.UpdateProduct(SampleProducts.CreateProductWithPersons(1, "", "", 1));

            var sut = CreateProductInteractor();

            // Act
            sut.RemovePersonFromProduct(1, 1, Role.Actor);

            // Assert
            Assert.IsTrue(true);
        }
        public void TestShouldCreateProduct()
        {
            // Arrange
            _productInteractor.CreateProduct("FirstProduct", "This is the first product.")
            .Returns(SampleProducts.CreateProduct(1));

            var sut = CreateProductController();

            // Act
            var result = sut.CreateProduct(SampleProductDtos.CreateProductCreate());

            // Assert
            var createdResult = (CreatedAtRouteResult)result;
            var value         = (Product)createdResult.Value;

            Assert.AreEqual((int)HttpStatusCode.Created, createdResult.StatusCode);
            Assert.AreEqual("FirstProduct", value.Name);
        }
        public void TestShouldGetProductFromId()
        {
            // Arrange
            _productInteractor.GetProduct(1)
            .Returns(SampleProducts.CreateProduct(1));

            var sut = CreateProductController();

            // Act
            var result = sut.GetProduct(1);

            // Assert
            var okResult = (OkObjectResult)result;
            var value    = (Product)okResult.Value;

            Assert.AreEqual((int)HttpStatusCode.OK, okResult.StatusCode);
            Assert.AreEqual("FirstProduct", value.Name);
        }
        public void TestShouldGetProductsFromName()
        {
            // Arrange
            _productInteractor.SearchProducts("Product")
            .Returns(SampleProducts.CreateProducts4());

            var sut = CreateProductController();

            // Act
            var result = sut.GetProducts("Product");

            // Assert
            var okResult = (OkObjectResult)result;
            var value    = (List <Product>)okResult.Value;

            Assert.AreEqual((int)HttpStatusCode.OK, okResult.StatusCode);
            Assert.AreEqual(4, value.Count);
            Assert.AreEqual("ThirdProduct", value.Single(p => p.Id == 3).Name);
        }
        public void TestShouldAddPersonToProduct()
        {
            // Arrange
            _queries.GetPerson(1)
                .Returns(SamplePersons.CreatePerson(1));

            _queries.GetProduct(1)
                .Returns(SampleProducts.CreateProduct(1));

            _repository.UpdateProduct(SampleProducts.CreateProduct(1));

            var sut = CreateProductInteractor();

            // Act
            sut.AddPersonToProduct(1, 1, Role.Actor);

            // Assert
            Assert.IsTrue(true);
        }
Esempio n. 29
0
        public IActionResult ValidateModel(SampleProducts product)
        {
            bool Isvalid = obj.IsValid(product, out errors);

            if (Isvalid)
            {
                productList.Add(product);
            }
            else
            {
                //if file does not exist
                if (errors.Count == 0)
                {
                    return(BadRequest("Json file does not exist in blob for Validation"));
                }
                else
                {
                    return(BadRequest(errors));
                }
            }
            return(Ok(product));
        }
Esempio n. 30
0
        public void TestShouldWriteProductsToFile()
        {
            // Arrange
            _dataFile.Value.Returns(new Datafile {
                FileName = ProductsFileName
            });

            var sut = CreateFileHandler();

            var products = sut.Read();

            products.Add(SampleProducts.CreateProduct(3, "ThirdProduct", "This is the third product."));

            // Act
            sut.Write(products);

            // Assert
            var result = sut.Read();

            Assert.AreEqual(3, result.Count);
            Assert.AreEqual("SecondProduct", result.Single(r => r.Id == 2).Name);
            Assert.AreEqual("ThirdProduct", result.Single(r => r.Id == 3).Name);
        }