Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        public void UpdateVersion_UpdatableVersionExistInRepository_UpdateVersionInRepositoryAndWriteToLogThisReport()
        {
            //Arrange
            string  productName  = "productName";
            Version firstVersion = CreateNewVersion("1.1.1");

            CurrentProductRepository.AddVersion(productName, firstVersion);

            Version newVersion = new Version(firstVersion.ProductVersion, "newShortDesc",
                                             "newLongDesc", "newChanges", "newFileName", "newFileUrl");

            //Act
            CurrentProductRepository.UpdateVersion(productName, newVersion);

            //Assert
            bool isFirstVersionExistInRepository     = IsThereVersion(productName, CreateNewVersion("1.1.1"));
            bool isUpdatableVersionExistInRepository = IsThereVersion(productName, newVersion);

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

            Assert.False(isFirstVersionExistInRepository);
            Assert.True(isUpdatableVersionExistInRepository);
            Assert.AreEqual(expectedMessage, actualMessage);
        }
Ejemplo n.º 4
0
        public void UpdateVersion_UpdatableProductNotFoundInRepository_ReturnsFalseAndWriteToLogAboutNonExistentUpdatableProduct()
        {
            //Arrange
            string  productName      = "productName";
            Version updatableVersion = CreateNewVersion("1.1.1");

            //Act
            bool IsUpdatableVersionUpdatedInRepository = CurrentProductRepository.UpdateVersion(productName, updatableVersion);

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

            Assert.AreEqual(expectedMessage, actualMessage);
            Assert.False(IsUpdatableVersionUpdatedInRepository);
        }
Ejemplo n.º 5
0
        public void AddVersion_WithIncorrectVersionNumber_ReturnsFalseAndWriteThisToLog()
        {
            //Arrange
            Version versionWithIncorrectVersionNumber = CreateNewVersion(".1.1.");
            string  productName = "productName";

            //Act
            bool IsVersionWithIncorrectVersionNumberInRepository = CurrentProductRepository.AddVersion(productName, versionWithIncorrectVersionNumber);

            //Assert
            string expectedMessage = "Номер версии введен некорректно";
            string actualMessage   = _lastMessageFromLog;


            Assert.AreEqual(expectedMessage, actualMessage);
            Assert.False(IsVersionWithIncorrectVersionNumberInRepository);
        }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
0
        public void AddVersion_WithOldVersionNumber_ReturtnsFalseAndWriteThisToLog(string oldVersionNumber)
        {
            //Arrange
            string  productName   = "productName";
            Version latestVersion = CreateNewVersion("1.1.1");
            Version oldVersion    = CreateNewVersion(oldVersionNumber);

            CurrentProductRepository.AddVersion(productName, latestVersion);

            //Act
            bool IsOldVersionInRepository = CurrentProductRepository.AddVersion(productName, oldVersion);

            //Assert
            string expectedMessage = "Данная версия не может быть добавлена, так как не является новой";
            string actualMessage   = _lastMessageFromLog;

            Assert.AreEqual(expectedMessage, actualMessage);
            Assert.False(IsOldVersionInRepository);
        }
Ejemplo n.º 8
0
        public void AddVersion_WithLatestVersionNumberButWithAnExistingProductName_AddedNewVersionInListOfProductVersionsAndNotDeleteOldVersion(string newVersionNumber)
        {
            //Arrange
            string  productName   = "productName";
            Version latestVersion = CreateNewVersion("1.1.1");
            Version newVersion    = CreateNewVersion(newVersionNumber);

            CurrentProductRepository.AddVersion(productName, latestVersion);

            //Act
            CurrentProductRepository.AddVersion(productName, newVersion);

            //Assert
            bool isRepositoryContainLatestVersion = CurrentProductRepository.GetProductVersions(productName).Contains(latestVersion);
            bool isRepositoryContainNewVersion    = CurrentProductRepository.GetProductVersions(productName).Contains(newVersion);

            Assert.True(isRepositoryContainLatestVersion);
            Assert.True(isRepositoryContainNewVersion);
        }
Ejemplo n.º 9
0
        public void AddVersion_WithLatestVersionNumberAndUniqueProductName_AddedNewProductAndNewVersionInRepository()
        {
            //Arrange
            Version newVersion  = CreateNewVersion("1.1.1");
            string  productName = "productName";

            //Act
            CurrentProductRepository.AddVersion(productName, newVersion);

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

            potentiallyAddedProduct.InitializeLatestVersion(newVersion);

            bool WasProductAdded = IsThereProduct(potentiallyAddedProduct);
            bool WasVersionAdded = IsThereVersion(productName, newVersion);

            Assert.True(WasProductAdded);
            Assert.True(WasVersionAdded);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Метод для проверки существования продукта в репозитории
        /// </summary>
        private bool IsThereProduct(Product product)
        {
            List <Product> products = CurrentProductRepository.GetProducts();

            return(products == null ? false : products.Contains(product));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Метод для проверки существования версии в репозитории
        /// </summary>
        private bool IsThereVersion(string productName, Version version)
        {
            List <Version> versions = CurrentProductRepository.GetProductVersions(productName);

            return(versions == null ? false : versions.Contains(version));
        }