public void CreateCommandHandlerOnSuccessHasValidDirectoryStructure() { var mockFileSystem = new MockFileSystem(); mockFileSystem.AddDirectory(Environment.CurrentDirectory); var globalTuple = MockFileSystemHelper.GetGlobalTemplateMock(); mockFileSystem.AddFile(globalTuple.Item1, globalTuple.Item2); var localTuple = MockFileSystemHelper.GetLocalTemplateMock(); mockFileSystem.AddFile(localTuple.Item1, localTuple.Item2); var configComposer = new ConfigComposer(mockFileSystem); var contentComposer = new ContentComposer(mockFileSystem); var handler = new CreateCommandHandler( configComposer, contentComposer, mockFileSystem, _mockTerminal.Object); const string projectName = "MyUnitTestProject"; const string outputDirectoryName = "public"; handler.Handle(new CreateCommand { OutputDirectoryName = outputDirectoryName, ProjectName = projectName }); string projectRootPath = mockFileSystem.Path.Combine( Environment.CurrentDirectory, projectName); string projectOutputPath = mockFileSystem.Path.Combine( projectRootPath, outputDirectoryName); string projectContentPath = mockFileSystem.Path.Combine( projectRootPath, ReservedDirectories.ContentDirectoryName); Assert.Multiple(() => { Assert.True(mockFileSystem.Directory.Exists(projectRootPath)); Assert.True(mockFileSystem.Directory.Exists(projectOutputPath)); Assert.True(mockFileSystem.Directory.Exists(projectContentPath)); }); }
public void CreateCommandHandlerOnSucessHasValidSettingsFile() { // TODO: validate actual JSON content - not just that the file exists. var mockFileSystem = new MockFileSystem(); mockFileSystem.AddDirectory(Environment.CurrentDirectory); var globalTuple = MockFileSystemHelper.GetGlobalTemplateMock(); mockFileSystem.AddFile(globalTuple.Item1, globalTuple.Item2); var localTuple = MockFileSystemHelper.GetLocalTemplateMock(); mockFileSystem.AddFile(localTuple.Item1, localTuple.Item2); var configComposer = new ConfigComposer(mockFileSystem); var contentComposer = new ContentComposer(mockFileSystem); var handler = new CreateCommandHandler( configComposer, contentComposer, mockFileSystem, _mockTerminal.Object); const string projectName = "MyUnitTestProject"; handler.Handle(new CreateCommand { OutputDirectoryName = "public", ProjectName = projectName }); string projectRootPath = mockFileSystem.Path.Combine( Environment.CurrentDirectory, projectName); Assert.True(mockFileSystem.File.Exists(mockFileSystem.Path.Combine( projectRootPath, "local-config.json"))); }