GivenConfigWithCreateSteamWorkshopItemTask_WithoutTags__WhenParsing__TaskShouldBeConfiguredWithGivenSettings() { const string lua = @" local p = project('test') local j = p:add_job('test-job') j:add_task(create_steam_workshop_item { app_id = 32470, title = 'my-test-item', description_file = 'path/to/description', item_folder = 'path/to/folder', visibility = visibility.private, language = 'English' }) "; _mockFileData.TextContents = lua; TaskBuilderMock taskBuilderMock = new TaskBuilderMock(new Dictionary <string, object> { { "AppId", (uint)32470 }, { "Title", "my-test-item" }, { "DescriptionFilePath", "path/to/description" }, { "ItemFolderPath", "path/to/folder" }, { "Visibility", WorkshopItemVisibility.Private }, { "Language", "English" } }); BuildComponentFactoryStub factoryStub = new BuildComponentFactoryStub { TaskBuilder = taskBuilderMock }; MakeSutAndParse(factoryStub); taskBuilderMock.Verify(); }
public void SetUp() { _taskBuilderMock = new TaskBuilderMock(new Dictionary <string, object> { { "ExecutablePath", Path } }); }
public void GivenConfigWithProjectRunProcessTaskWithSettings__WhenParsing__TaskShouldBeConfiguredCorrectly() { const string lua = @" local p = project('test') local j = p:add_job('test-job') j:add_task(run_process('echo'): arguments('Hello World'): working_directory('sub/dir'): allowed_to_fail(true) ) "; _mockFileData.TextContents = lua; TaskBuilderMock taskBuilderMock = new TaskBuilderMock(new Dictionary <string, object> { { "ExecutablePath", "echo" }, { "Arguments", "Hello World" }, { "WorkingDirectory", "sub/dir" }, { "AllowedToFail", true } }); BuildComponentFactoryStub factoryStub = new BuildComponentFactoryStub { TaskBuilder = taskBuilderMock }; MakeSutAndParse(factoryStub); taskBuilderMock.Verify(); }
public void GivenConfigWithCopyTaskWithSettings__WhenParsing__TaskShouldBeConfiguredCorrectly() { const string lua = @" local p = project('test') local j = p:add_job('test-job') j:add_task(copy('a', 'b'): overwrite(true): pattern('*.xml'): recursive(true)) "; _mockFileData.TextContents = lua; TaskBuilderMock taskBuilderMock = new TaskBuilderMock(new Dictionary <string, object> { { "CopyFromPath", "a" }, { "CopyToPath", "b" }, { "AlwaysOverwrite", true }, { "CopyFileByPattern", "*.xml" }, { "CopySubfolders", true } }); BuildComponentFactoryStub factoryStub = new BuildComponentFactoryStub { TaskBuilder = taskBuilderMock }; MakeSutAndParse(factoryStub); taskBuilderMock.Verify(); }
GivenLuaUpdateSteamWorkshopItemTaskWithConfigTable_With_PrivateVisibility__OnCreation__ShouldConfigureTask() { TaskBuilderMock taskBuilderMock = CreateTaskBuilderMock(WorkshopItemVisibility.Private); using NLua.Lua luaInterpreter = new NLua.Lua(); PushVisibilityTable(luaInterpreter); LuaTable table = CreateConfigurationTable(luaInterpreter, LuaPrivateVisibility); LuaUpdateSteamWorkshopItemTask sut = new LuaUpdateSteamWorkshopItemTask(taskBuilderMock, table); taskBuilderMock.Verify(); }
private void InitTaskBuilderMock(Dictionary <string, object> expectedConfig = null) { Dictionary <string, object> expectedEntries = new Dictionary <string, object> { { "CopyFromPath", Source }, { "CopyToPath", Target } }; expectedConfig?.ToList().ForEach(pair => expectedEntries.Add(pair.Key, pair.Value)); _taskBuilderMock = new TaskBuilderMock(expectedEntries); }
public void GivenLuaCleanTask__ShouldCallTaskBuilderWithPath() { const string path = "folder/file"; TaskBuilderMock taskBuilderMock = new TaskBuilderMock(new Dictionary <string, object> { { "Path", path } }); LuaCleanTask sut = new LuaCleanTask(taskBuilderMock, path); taskBuilderMock.Verify(); }
public void GivenProjectWithJobAndCopyTask__WhenCallingParse__ShouldConfigureTaskWithBuilder() { const string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?> <eaw-ci:BuildConfiguration ConfigVersion=""1.0.0"" xmlns:eaw-ci=""eaw-ci"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""> <Projects> <Project Id=""idvalue0""> <Jobs> <Job Id=""idvalue1"" Name=""TestJob""> <Tasks> <Task Id=""TestTask"" Name=""TestTask"" xsi:type=""eaw-ci:Copy""> <CopyFromPath>path/to/source</CopyFromPath> <CopyToPath>path/to/dest</CopyToPath> <CopySubfolders>true</CopySubfolders> <CopyFileByPattern>*</CopyFileByPattern> <AlwaysOverwrite>false</AlwaysOverwrite> </Task> </Tasks> </Job> </Jobs> </Project> </Projects> </eaw-ci:BuildConfiguration>"; _mockFileData.TextContents = xml; TaskBuilderMock taskBuilderMock = new TaskBuilderMock(new Dictionary <string, object> { { "Id", "TestTask" }, { "Name", "TestTask" }, { "CopyFromPath", "path/to/source" }, { "CopyToPath", "path/to/dest" }, { "CopySubfolders", true }, { "CopyFileByPattern", "*" }, { "AlwaysOverwrite", false } }); BuildComponentFactoryStub factoryStub = new BuildComponentFactoryStub { TaskBuilder = taskBuilderMock }; XmlBuildConfigParser sut = new XmlBuildConfigParser(_fileSystem, factoryStub); sut.Parse(Path); taskBuilderMock.Verify(); }
public void GivenConfigWithCleanTask__WhenParsing__TaskShouldBeConfiguredCorrectly() { const string lua = @" local p = project('test') local j = p:add_job('test-job') j:add_task(clean('path')) "; _mockFileData.TextContents = lua; TaskBuilderMock taskBuilderMock = new TaskBuilderMock(new Dictionary <string, object> { { "Path", "path" } }); BuildComponentFactoryStub factoryStub = new BuildComponentFactoryStub { TaskBuilder = taskBuilderMock }; MakeSutAndParse(factoryStub); taskBuilderMock.Verify(); }
GivenTwoGlobalTasksAndReferenceToSecondInProjectJob__WhenCallingParse__ShouldBuildSecondGlobalTask() { const string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?> <eaw-ci:BuildConfiguration ConfigVersion=""1.0.0"" xmlns:eaw-ci=""eaw-ci"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""> <GlobalTasks> <TaskDefinition Id=""TestTask"" xsi:type=""eaw-ci:Copy""> <CopyFromPath>invalid</CopyFromPath> <CopyToPath>invalid</CopyToPath> <CopySubfolders>false</CopySubfolders> <CopyFileByPattern>*</CopyFileByPattern> <AlwaysOverwrite>false</AlwaysOverwrite> </TaskDefinition> <TaskDefinition Id=""ExpectedTask"" Name=""ExpectedTask"" xsi:type=""eaw-ci:Copy""> <CopyFromPath>path/to/source</CopyFromPath> <CopyToPath>path/to/dest</CopyToPath> <CopySubfolders>true</CopySubfolders> <CopyFileByPattern>*</CopyFileByPattern> <AlwaysOverwrite>false</AlwaysOverwrite> </TaskDefinition> </GlobalTasks> <Projects> <Project Id=""idvalue1""> <Jobs> <Job Id=""idvalue2"" Name=""TestJob""> <Tasks> <TaskReference ReferenceId=""ExpectedTask"" /> </Tasks> </Job> </Jobs> </Project> </Projects> </eaw-ci:BuildConfiguration>"; _mockFileData.TextContents = xml; JobStub jobStub = new JobStub(); TaskBuilderMock taskBuilderMock = new TaskBuilderMock(new Dictionary <string, object> { { "Id", "ExpectedTask" }, { "Name", "ExpectedTask" }, { "CopyFromPath", "path/to/source" }, { "CopyToPath", "path/to/dest" }, { "CopySubfolders", true }, { "CopyFileByPattern", "*" }, { "AlwaysOverwrite", false } }); BuildComponentFactoryStub factoryStub = new BuildComponentFactoryStub { Job = jobStub, TaskBuilder = taskBuilderMock }; XmlBuildConfigParser sut = new XmlBuildConfigParser(_fileSystem, factoryStub); sut.Parse(Path); taskBuilderMock.Verify(); }