Exemple #1
0
        public async Task CreateAllAsync_WithDummyData_ShouldSuccessfullyCreate()
        {
            var errorMessagePrefix = "AllergenService CreateAllAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context            = ApplicationDbContextInMemoryFactory.InitializeContext();
            var allergenRepository = new EfRepository <Allergen>(context);
            var allergenService    = new AllergenService(allergenRepository);
            var allergenNames      = new string[] { "Milk", "Eggs" };

            // Act
            await allergenService.CreateAllAsync(allergenNames);

            var actualResult = await allergenRepository
                               .All()
                               .Select(x => x.Name)
                               .ToListAsync();

            var expectedResult = allergenNames;

            // Assert
            for (int i = 0; i < actualResult.Count; i++)
            {
                Assert.True(expectedResult[i] == actualResult[i], errorMessagePrefix + " " + "Expected name and actual name do not match.");
            }
        }
Exemple #2
0
        public async Task GetIdsByNamesAsync_WithCorrectData_ShouldReturnCorrectResult()
        {
            var errorMessagePrefix = "AllergenService GetIdsByNamesAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var allergenRepository = new EfRepository <Allergen>(context);
            var allergenService    = new AllergenService(allergenRepository);
            var existentNames      = new string[] { "Milk", "Eggs" };

            // Act
            var actualResult   = (await allergenService.GetIdsByNamesAsync(existentNames)).ToList();
            var expectedResult = await allergenRepository
                                 .All()
                                 .Where(x => existentNames.Contains(x.Name))
                                 .Select(x => x.Id)
                                 .ToListAsync();

            // Assert
            for (int i = 0; i < actualResult.Count; i++)
            {
                Assert.True(actualResult[i] == expectedResult[i], errorMessagePrefix + " " + "Id is not returned properly.");
            }
        }
Exemple #3
0
        public async Task SetAllergenToUserAsync_WithCorrectData_ShouldSuccessfullySet()
        {
            var errorMessagePrefix = "AllergenService SetAllergenToUserAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var allergenRepository = new EfRepository <Allergen>(context);
            var allergenService    = new AllergenService(allergenRepository);
            var user = new ApplicationUser();

            // Act
            await allergenService.SetAllergenToUserAsync("Milk", user);

            var actualResult   = user.Allergies.First().Allergen;
            var expectedResult = await allergenRepository
                                 .All()
                                 .SingleOrDefaultAsync(x => x.Name == "Milk");

            // Assert
            Assert.True(actualResult.Id == expectedResult.Id, errorMessagePrefix + " " + "Id is not returned properly.");
            Assert.True(actualResult.Name == expectedResult.Name, errorMessagePrefix + " " + "Name is not returned properly.");
        }
Exemple #4
0
        public async Task CreateAllAsync_WithZeroData_ShouldReturnCorrectResult()
        {
            var errorMessagePrefix = "AllergenService CreateAllAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context            = ApplicationDbContextInMemoryFactory.InitializeContext();
            var allergenRepository = new EfRepository <Allergen>(context);
            var allergenService    = new AllergenService(allergenRepository);
            var allergenNames      = new string[] { };

            // Act
            var result = await allergenService.CreateAllAsync(allergenNames);

            // Assert
            Assert.False(result, errorMessagePrefix + " " + "Returns true.");
        }
Exemple #5
0
        public async Task SetAllergenToUserAsync_WithNonExistentAllergen_ShouldThrowArgumentNullException()
        {
            // Arrange
            MapperInitializer.InitializeMapper();
            var context            = ApplicationDbContextInMemoryFactory.InitializeContext();
            var allergenRepository = new EfRepository <Allergen>(context);
            var allergenService    = new AllergenService(allergenRepository);
            var user = new ApplicationUser();

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>(async() =>
            {
                await allergenService.SetAllergenToUserAsync("NonExistent", user);
            });
        }
Exemple #6
0
        public async Task GetIdsByNamesAsync_WithNonExistentName_ShouldThrowArgumentNullException()
        {
            // Arrange
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var allergenRepository          = new EfRepository <Allergen>(context);
            var allergenService             = new AllergenService(allergenRepository);
            var existentAndNonExistentNames = new string[] { "Milk", "NonExistent" };

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>(async() =>
            {
                await allergenService.GetIdsByNamesAsync(existentAndNonExistentNames);
            });
        }
Exemple #7
0
        public async Task GetAllNamesAsync_ShouldReturnCorrectResult()
        {
            var errorMessagePrefix = "AllergenService GetAllNamesAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var allergenRepository = new EfRepository <Allergen>(context);
            var allergenService    = new AllergenService(allergenRepository);

            // Act
            var actualResult   = (await allergenService.GetAllNamesAsync()).ToList();
            var expectedResult = this.GetDummyData().Select(x => x.Name).ToList();

            // Assert
            for (int i = 0; i < actualResult.Count; i++)
            {
                Assert.True(expectedResult[i] == actualResult[i], errorMessagePrefix + " " + "Expected name and actual name do not match.");
            }
        }