예제 #1
0
        public void RemoveVersion_TheProductHasOnlyOneVersion_RemovesTheVersionAndTheProductAndWritesThisToLog()
        {
            //Arrange
            string  productName      = "productName";
            Version removableVersion = CreateNewVersion("1.1.1");

            CurrentProductRepository.AddVersion(productName, removableVersion);

            //Act
            CurrentProductRepository.RemoveVersion(productName, removableVersion.ProductVersion);

            //Assert
            Product potentiallyRemovedProduct = new Product(productName);

            potentiallyRemovedProduct.InitializeLatestVersion(removableVersion);

            bool isRemovedVersionExistInRepository = IsThereVersion(productName, removableVersion);
            bool isRemovedProductExistInRepository = IsThereProduct(potentiallyRemovedProduct);

            string expectedMessage = $"Продукт {productName} успешно удален";
            string actualMessage   = _lastMessageFromLog;

            Assert.False(isRemovedVersionExistInRepository);
            Assert.False(isRemovedProductExistInRepository);
            Assert.AreEqual(expectedMessage, actualMessage);
        }
예제 #2
0
        public void RemoveVersion_TheProductHasMoreThanOneVersion_RemovesTheVersionAndWritesThisToLog()
        {
            //Arrange
            string  productName      = "productName";
            Version firstVersion     = CreateNewVersion("1.1.1");
            Version removableVersion = CreateNewVersion("1.1.2");

            CurrentProductRepository.AddVersion(productName, firstVersion);
            CurrentProductRepository.AddVersion(productName, removableVersion);

            Product product = CurrentProductRepository.GetProducts().FirstOrDefault();

            //Act
            CurrentProductRepository.RemoveVersion(productName, removableVersion.ProductVersion);

            //Assert
            bool productStillExistsInRepository    = IsThereProduct(product);
            bool isRemovedVersionExistInRepository = IsThereVersion(productName, removableVersion);

            string expectedMessage = $"Версия {removableVersion.ProductVersion} продукта {productName} успешно удалена";
            string actualMessage   = _lastMessageFromLog;

            Assert.True(productStillExistsInRepository);
            Assert.False(isRemovedVersionExistInRepository);
            Assert.AreEqual(expectedMessage, actualMessage);
        }
예제 #3
0
        public void RemoveVersion_RemovableVersionNotFoundInRepository_ReturnsFalseAndWriteToLogAboutNonExistentRemovableVersion()
        {
            //Arrange
            string  productName      = "productName";
            Version removableVersion = CreateNewVersion("1.1.1");

            //Act
            bool IsRemovableVersionRemovedFromRepository = CurrentProductRepository
                                                           .RemoveVersion(productName, removableVersion.ProductVersion);

            //Assert
            string expectedMessage = "Удаляемой версии продукта не существует!";
            string actualMessage   = _lastMessageFromLog;

            Assert.AreEqual(expectedMessage, actualMessage);
            Assert.False(IsRemovableVersionRemovedFromRepository);
        }