Esempio n. 1
0
        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 }
     });
 }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        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();
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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();
        }