Exemplo n.º 1
0
        public void CopyFilesWhenIndicated(bool shouldInitialize)
        {
            var initializationDeterminer = new MockLevelInitializationDeterminer(shouldInitialize);

            var copyDir = new MockCopyDir();

            var levelId           = "level";
            var levelToInitialize = new Level(id: levelId, folderFilepath: ".");
            var levelsProvider    = new FakeLevelsProvider(new[] { levelToInitialize });
            var mockFileSystem    = new MockFileSystem();

            mockFileSystem.AddDirectory(levelToInitialize.GetMasterFolder()); //will throw error if no master folder

            var masterFolderLevelInitializer = new MasterFolderLevelInitializer(initializationDeterminer,
                                                                                copyDir,
                                                                                levelsProvider,
                                                                                mockFileSystem.Path);

            var someUser = "******";

            masterFolderLevelInitializer.InitializeIfNecessary(levelId, someUser);

            Assert.Equal(shouldInitialize, copyDir.DidCopy);
            Assert.Equal(shouldInitialize, initializationDeterminer.IsMarkedAsInitialized);
        }
        public void RemoveContentsOfProjectFolder(MockFileSystem fs, FakeLevelsProvider provider, Level level, string user)
        {
            var initializer = new MasterFolderLevelInitializer(new MockLevelInitializationDeterminer(false), new MockCopyDir(), provider, fs.Path);

            initializer.Clean(level.Id, user);

            Assert.Empty(fs.Directory.EnumerateFileSystemEntries("C:\\" + level.GetProjectFolder(user)));
        }
        public void UnmarkUserFolder(FakeLevelsProvider provider, string levelId, string user, string expectedUserFolder)
        {
            var determiner  = new MockLevelInitializationDeterminer(false, true);
            var initializer = new MasterFolderLevelInitializer(determiner, new MockCopyDir(), provider, new MockPath(new MockFileSystem()));

            //This Assert.Throws code is necessary, as we are not testing for any actual IO operations
            Assert.Throws <DirectoryNotFoundException>(() => initializer.Clean(levelId, user));

            Assert.False(determiner.IsMarkedAsInitialized);
            Assert.Equal(expectedUserFolder, determiner.SuppliedUserFolderPath);
        }
Exemplo n.º 4
0
        public void ThrowExceptionIfMasterFolderDoesNotExist(FakeLevelsProvider fakeLevelsProvider, string levelId, string user, string expectedSourceDir, string expectedDestDir)
        {
            var determinerIndicatingInitialization = new MockLevelInitializationDeterminer(true);
            var copyDir = new MockCopyDir();
            var path    = new MockPath(new MockFileSystem());
            var masterFolderLevelInitializer = new MasterFolderLevelInitializer(determinerIndicatingInitialization,
                                                                                copyDir,
                                                                                fakeLevelsProvider,
                                                                                path);

            var exception = Assert.Throws <DirectoryNotFoundException>(() => masterFolderLevelInitializer.InitializeIfNecessary(levelId, user));

            Assert.Equal($"Master folder for level {levelId} not found.", exception.Message);
        }
Exemplo n.º 5
0
        public void CopyCorrectFilesToCorrectLocation(FakeLevelsProvider fakeLevelsProvider, string levelId, string user, string expectedSourceDir, string expectedDestDir)
        {
            var determinerIndicatingInitialization = new MockLevelInitializationDeterminer(true);
            var copyDir        = new MockCopyDir();
            var mockFileSystem = new MockFileSystem();

            foreach (var level in fakeLevelsProvider.GetLevels())
            {
                mockFileSystem.AddDirectory(level.GetMasterFolder()); //put master folder in every level folder to prevent error
            }
            var masterFolderLevelInitializer = new MasterFolderLevelInitializer(determinerIndicatingInitialization,
                                                                                copyDir,
                                                                                fakeLevelsProvider,
                                                                                mockFileSystem.Path);

            masterFolderLevelInitializer.InitializeIfNecessary(levelId, user);

            Assert.Equal(expectedSourceDir, copyDir.SuppliedSourceDir);
            Assert.Equal(expectedDestDir, copyDir.SuppliedDestDir);
        }
Exemplo n.º 6
0
        public static IExecutable MakeApp(string rootPath = ".")
        {
            var main        = new RouterCommand();
            var fs          = new FileSystem();
            var provider    = new FileSystemLevelsProvider(fs, rootPath);
            var initializer = new MasterFolderLevelInitializer(
                new UserJsonLevelInitializationDeterminer(fs),
                new CopyDir(fs),
                provider,
                fs.Path);

            main.Register("levels", new GetLevelsCommand(provider));
            main.Register("open", new OpenLevelCommand(
                              initializer,
                              provider));
            main.Register("instructions", new GetInstructionsPathCommand(provider));
            main.Register("verify", new VerifyCommand(
                              provider,
                              new JarFileVerifier(new JarFileProcessFactory())
                              ));
            main.Register("reset", new ResetLevelCommand(initializer));

            return(main);
        }