public void Import_ContentUpToDate()
        {
            // Arrange
            WriteMinimalContentFile();

            var lastDataStoreVersion = EnumExtensions.GetMaxValue<DataStoreSchemaVersions>();
            var dataStoreConfiguration = Mocks.Create<IDataStoreConfiguration>(MockBehavior.Strict);
            dataStoreConfiguration.SetupGet(c => c.DataStoreSchemaVersion).Returns((int)lastDataStoreVersion);
            dataStoreConfiguration.SetupGet(c => c.HelpContentVersion).Returns(1);

            var helpContentManager = new HelpContentManager(null, dataStoreConfiguration.Object, null, null, null);

            // Act
            helpContentManager.ImportContent(_contentFileName);

            // Assert
            Mocks.VerifyAll();
        }
        public void Import_FileNotPresent()
        {
            // Arrange
            // No methods should be called on the repositories.
            // Default behavior strict and the verify all assure this.
            var bulletRepository = Mocks.Create<IBulletRepository>();
            var dataStoreConfiguration = Mocks.Create<IDataStoreConfiguration>();
            var pageRepository = Mocks.Create<IDocumentationPageRepository>();
            var helpRepository = Mocks.Create<IFirstTimeHelpRepository>();
            var userPageSettingsRepository = Mocks.Create<IUserPageSettingsRepository>();

            var updater = new HelpContentManager(
                bulletRepository.Object,
                dataStoreConfiguration.Object,
                pageRepository.Object,
                helpRepository.Object,
                userPageSettingsRepository.Object);

            // Act
            updater.ImportContent(_contentFileName);

            // Assert
            Mocks.VerifyAll();
        }
        public void Import_UpdateContent()
        {
            // Arrange
            WriteMinimalContentFile();

            var bulletRepository = Mocks.Create<IBulletRepository>();
            bulletRepository.Setup(r => r.DeleteExcept(It.IsAny<List<int>>()));

            var lastDataStoreVersion = EnumExtensions.GetMaxValue<DataStoreSchemaVersions>();
            var dataStoreConfiguration = Mocks.Create<IDataStoreConfiguration>(MockBehavior.Strict);
            dataStoreConfiguration.SetupGet(c => c.DataStoreSchemaVersion).Returns((int)lastDataStoreVersion);
            dataStoreConfiguration.SetupGet(c => c.HelpContentVersion).Returns(0);
            dataStoreConfiguration.SetupSet(c => c.HelpContentVersion = 1);

            var pageRepository = Mocks.Create<IDocumentationPageRepository>();
            pageRepository.Setup(r => r.DeleteExcept(It.IsAny<List<int>>()));

            var helpRepository = Mocks.Create<IFirstTimeHelpRepository>();
            helpRepository.Setup(r => r.DeleteExcept(It.IsAny<List<int>>()));

            var userPageSettingsRepository = Mocks.Create<IUserPageSettingsRepository>();
            userPageSettingsRepository.Setup(r => r.DeleteExcept(It.IsAny<List<int>>()));

            var updater = new HelpContentManager(
             				bulletRepository.Object,
                dataStoreConfiguration.Object,
                pageRepository.Object,
                helpRepository.Object,
                userPageSettingsRepository.Object);

            // Act
            updater.ImportContent(_contentFileName);

            // Assert
            Mocks.VerifyAll();
        }