public void PutWine_AttributesUnchanged_WhenUsingInvalidWineId()
        {
            // Arrange
            // Set up associated object - Varietal.
            var varietalEntity = new VarietalEntity
            {
                Varietal = "Test 4.4 Varietal"
            };

            _dbContext.Varietals.Add(varietalEntity);

            // Set up associated object - BottleSize.
            var bottleSizeEntity = new BottleSizeEntity
            {
                // Just use default values.
            };

            _dbContext.BottleSizes.Add(bottleSizeEntity);

            // Set up associated object - Winery.
            var wineryEntity = new WineryEntity
            {
                Name = "Test 4.4 Winery"
            };

            _dbContext.Wineries.Add(wineryEntity);

            _dbContext.SaveChanges( );

            var wineEntity = new WineEntity
            {
                Name          = "Test 4.4 Wine",
                WhenPurchased = "Test 4.4 WhenPurchased",
                //--BottlesDrank = 4,
                BottlesPurchased   = 3,
                VarietalEntityId   = varietalEntity.Id,
                BottleSizeEntityId = bottleSizeEntity.Id,
                WineryEntityId     = wineryEntity.Id,
                Vintage            = "Test 4.4 Vintage"
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );
            var wineEntityId = wineEntity.Id;

            var wine = new Wine
            {
                Name          = "Test 4.4 Wine UPDATE",
                WhenPurchased = "Test 4.4 WhenPurchased UPDTED",
                BottlesDrank  = 2,
                Vintage       = "Test 4.4 Vintage UPDATED"
            };

            // Act
            _controller.PutWine(wineEntity.Id + 1, wine);
            var result = _dbContext.Wines.Find(wineEntity.Id);

            // Assert
            Assert.Equal(wineEntity.Name, result.Name);
        }
        public void GetWine_ReturnsWines_WhenDBHasMultipleWines()
        {
            // Arrange
            var wine1 = new WineEntity
            {
                Name             = "Wine1 Name",
                Vintage          = "Wine1 Vintage",
                WhenPurchased    = "Wine1 WhenPurchased",
                BottlesDrank     = 1,
                BottlesPurchased = 8
            };
            var wine2 = new WineEntity
            {
                Name             = "Wine2 Name",
                Vintage          = "Wine2 Vintage",
                WhenPurchased    = "Wine2 WhenPurchased",
                BottlesDrank     = 0,
                BottlesPurchased = 6
            };

            _dbContext.Wines.Add(wine1);
            _dbContext.Wines.Add(wine2);
            _dbContext.SaveChanges( );

            // Act
            var results = _controller.GetWine( );

            // Assert
            Assert.Equal(2, results.Value.Count( ));
        }
        public void PutWine_Returns404NotFound_WhenUsingInvalidIWineId()
        {
            // Arrange
            // Set up associated object - Varietal.
            var varietalEntity = new VarietalEntity
            {
                Varietal = "Test 4.3 Varietal"
            };

            _dbContext.Varietals.Add(varietalEntity);

            // Set up associated object - BottleSize.
            var bottleSizeEntity = new BottleSizeEntity
            {
                // Just use default values.
            };

            _dbContext.BottleSizes.Add(bottleSizeEntity);

            // Set up associated object - Winery.
            var wineryEntity = new WineryEntity
            {
                Name = "Test 4.3 Winery"
            };

            _dbContext.Wineries.Add(wineryEntity);

            _dbContext.SaveChanges( );

            var wineEntity = new WineEntity
            {
                Name          = "Test 4.3 Wine",
                WhenPurchased = "Test 4.3 WhenPurchased",
                //--BottlesDrank = 4,
                BottlesPurchased   = 3,
                VarietalEntityId   = varietalEntity.Id,
                BottleSizeEntityId = bottleSizeEntity.Id,
                WineryEntityId     = wineryEntity.Id,
                Vintage            = "Test 4.3 Vintage"
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );
            var wineEntityId  = wineEntity.Id;
            var invalidWineId = wineEntityId + 10;

            var wine = new Wine
            {
                Name    = "Test 4.3 Wine UPDATE",
                Vintage = "Test 4.2 Vintage UPDATED"
            };

            // Act
            var result = _controller.PutWine(invalidWineId, wine);

            // Assert
            Assert.IsType <NotFoundResult>(result);
        }
        public void GetWine_ReturnsOneWine_WhenDBHasOneWine()
        {
            // Arrange
            var wineEntity = new WineEntity
            {
                Name             = "Wine Name",
                Vintage          = "Wine Vintage",
                WhenPurchased    = "Wine WhenPurchased",
                BottlesDrank     = 0,
                BottlesPurchased = 2
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );

            // Act
            var results = _controller.GetWine( );

            // Assert
            Assert.Single(results.Value);
        }
        public void DeleteWine_Returns200OK_WhenUsingValidWineId()
        {
            // Arrange
            var wineEntity = new WineEntity
            {
                Name          = "Test 5.2 Wine",
                WhenPurchased = "Test 5.2 WhenPurchased",
                //--BottlesDrank = 4,
                //--BottlesPurchased = 6,
                Vintage = "Test 5.2 Vintage"
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );

            var wineId = wineEntity.Id;

            // Act
            var result = _controller.DeleteWine(wineId);

            // Assert
            Assert.Null(result.Result);
        }
        public void GetWine_ReturnCorrectWine_WhenUsingValidID()
        {
            // Arrange
            var wineEntity = new WineEntity
            {
                Name             = "Test 2.4 Wine",
                Vintage          = "Test 2.4 Vintage",
                WhenPurchased    = "Test 2.4 WhenPurchased",
                BottlesDrank     = 0,
                BottlesPurchased = 3
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );

            var wineId = wineEntity.Id;

            // Act
            var result = _controller.GetWine(wineId);

            // Assert
            Assert.Equal(wineId, result.Value.Id);
        }
        public void GetWine_ReturnsItemOfCorrectType_WhenUsingValidID()
        {
            // Arrange
            var wineEntity = new WineEntity
            {
                Name             = "Test 2.3 Wine",
                Vintage          = "Test 2.3 Vintage",
                WhenPurchased    = "Test 2.3 WhenPurchased",
                BottlesDrank     = 0,
                BottlesPurchased = 4
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );

            var wineEntityId = wineEntity.Id;

            // Act
            var result = _controller.GetWine(wineEntityId);

            // Assert
            Assert.IsType <ActionResult <Wine> >(result);
        }
        public void DeleteWine_UnchangedObjectCount_WhenUsingInvalidWineId()
        {
            // Arrange
            var wineEntity = new WineEntity
            {
                Name          = "Test 5.4 Wine",
                WhenPurchased = "Test 5.4 WhenPurchased",
                //--BottlesDrank = 4,
                //--BottlesPurchased = 6,
                Vintage = "Test 5.4 Vintage"
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );

            var wineId   = wineEntity.Id;
            var objCount = _dbContext.Wines.Count( );

            // Act
            var result = _controller.DeleteWine(wineId + 1);

            // Assert
            Assert.Equal(objCount, _dbContext.Wines.Count( ));
        }
        public void DeleteWine_ObjectCountDecrementedBy1_WhenUsingValidWineId()
        {
            // Arrange
            var wineEntity = new WineEntity
            {
                Name          = "Test 5.1 Wine",
                WhenPurchased = "Test 5.1 WhenPurchased",
                //--BottlesDrank = 4,
                //--BottlesPurchased = 6,
                Vintage = "Test 5.1 Vintage"
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );

            var wineId   = wineEntity.Id;
            var objCount = _dbContext.Wines.Count( );

            // Act
            _controller.DeleteWine(wineId);

            // Assert
            Assert.Equal(objCount - 1, _dbContext.Wines.Count( ));
        }
Exemplo n.º 10
0
        public void PutWine_LinkedInfoUpdated_WhenUsingValidWineId()
        {
            // Arrange
            // Set up associated object - Varietal.
            var varietalEntity = new VarietalEntity
            {
                Varietal = "Test 4.5 Varietal"
            };
            var varietalEntity2 = new VarietalEntity
            {
                Varietal = "Test 4.5 Varietal2"
            };

            _dbContext.Varietals.Add(varietalEntity);
            _dbContext.Varietals.Add(varietalEntity2);

            // Set up associated object - BottleSize.
            var bottleSizeEntity = new BottleSizeEntity
            {
                // Just use default values.
            };
            var bottleSizeEntity2 = new BottleSizeEntity
            {
                BottleSize = "375"
            };

            _dbContext.BottleSizes.Add(bottleSizeEntity);
            _dbContext.BottleSizes.Add(bottleSizeEntity2);

            // Set up associated object - Winery.
            var wineryEntity = new WineryEntity
            {
                Name = "Test 4.1 Winery"
            };
            var wineryEntity2 = new WineryEntity
            {
                Name = "Test 4.5 Winery2"
            };

            _dbContext.Wineries.Add(wineryEntity);
            _dbContext.Wineries.Add(wineryEntity2);

            _dbContext.SaveChanges( );

            var wineEntity = new WineEntity
            {
                Name          = "Test 4.5 Wine",
                WhenPurchased = "Test 4.5 WhenPurchased",
                //--BottlesDrank = 4,
                BottlesPurchased   = 8,
                VarietalEntityId   = varietalEntity.Id,
                BottleSizeEntityId = bottleSizeEntity.Id,
                WineryEntityId     = wineryEntity.Id,
                Vintage            = "Test 4.5 Vintage"
            };

            _dbContext.Wines.Add(wineEntity);
            _dbContext.SaveChanges( );
            var wineEntityId = wineEntity.Id;

            var wine = new Wine
            {
                // Update Ids of linked records.
                BottleSizeId = bottleSizeEntity2.Id,
                VarietalId   = varietalEntity2.Id,
                WineryId     = wineryEntity2.Id
            };

            // Act
            _controller.PutWine(wineEntityId, wine);
            var result = _dbContext.Wines.Find(wineEntityId);

            // Assert
            Assert.Equal(wine.VarietalId, result.VarietalEntityId);
            Assert.Equal(wine.BottleSizeId, result.BottleSizeEntityId);
            Assert.Equal(wine.WineryId, result.WineryEntityId);
            Assert.Equal(bottleSizeEntity2.BottleSize, result.BottleSize.BottleSize);
            Assert.Equal(varietalEntity2.Varietal, result.Varietal.Varietal);
            Assert.Equal(wineryEntity2.Name, result.Winery.Name);
        }