예제 #1
0
        public void SimpleDelete()
        {
            using (TestEnvironment env = TestEnvironment.Create(_output))
            {
                List <TaskItem> list = new List <TaskItem>();

                for (int i = 0; i < 20; i++)
                {
                    list.Add(new TaskItem(env.CreateFolder().Path));
                }

                RemoveDir t = new RemoveDir();

                t.Directories = list.ToArray();
                t.BuildEngine = new MockEngine(_output);

                t.Execute().ShouldBeTrue();

                t.RemovedDirectories.Length.ShouldBe(list.Count);

                for (int i = 0; i < 20; i++)
                {
                    Directory.Exists(list[i].ItemSpec).ShouldBeFalse();
                }
            }
        }
예제 #2
0
        public void TestAssignment()
        {
            RemoveDir rd = new RemoveDir();

            rd.Directories = new ITaskItem [] { new TaskItem("A") };

            Assert.AreEqual("A", rd.Directories [0].ItemSpec, "A1");
        }
예제 #3
0
        public static void deleteTestDirectory(IBuildEngine buildEngine)
        {
            RemoveDir removeDirTask = new RemoveDir();

            removeDirTask.BuildEngine = buildEngine;
            removeDirTask.Directories = StringArrayToItemArray(new string[] { TestDirectory });
            removeDirTask.Execute();
        }
예제 #4
0
 public void StopListenToDirectory(object sender, MessageRecievedEventArgs dir)
 {
     if (!directories.ContainsKey(dir.Message))
     {
         return;
     }
     directories[dir.Message].StopListenDirectory(this, null);
     directories.Remove(dir.Message);
     settings.RemoveDirectories(dir.Message);
     RemoveDir?.Invoke(this, dir);
 }
예제 #5
0
        public void AttributeForwarding()
        {
            RemoveDir t = new RemoveDir();

            ITaskItem i = new TaskItem("MyNonExistentDirectory");

            i.SetMetadata("Locale", "en-GB");
            t.Directories = new ITaskItem[] { i };
            t.BuildEngine = new MockEngine(_output);

            t.Execute();

            t.RemovedDirectories[0].GetMetadata("Locale").ShouldBe("en-GB");
            t.RemovedDirectories[0].ItemSpec.ShouldBe("MyNonExistentDirectory");
            Directory.Exists(t.RemovedDirectories[0].ItemSpec).ShouldBeFalse();
        }
예제 #6
0
        public void AttributeForwarding()
        {
            RemoveDir t = new RemoveDir();

            ITaskItem i = new TaskItem("MyNonExistentDirectory");

            i.SetMetadata("Locale", "en-GB");
            t.Directories = new ITaskItem[] { i };
            t.BuildEngine = new MockEngine();

            t.Execute();

            Assert.Equal("en-GB", t.RemovedDirectories[0].GetMetadata("Locale"));

            // Output ItemSpec should not be overwritten.
            Assert.Equal("MyNonExistentDirectory", t.RemovedDirectories[0].ItemSpec);
        }
예제 #7
0
        public void DeleteEmptyDirectory_WarnsAndContinues()
        {
            using (TestEnvironment env = TestEnvironment.Create(_output))
            {
                List <TaskItem> list = new List <TaskItem>();

                for (int i = 0; i < 20; i++)
                {
                    list.Add(new TaskItem(""));
                }

                RemoveDir t = new RemoveDir();
                t.Directories = list.ToArray();
                t.BuildEngine = new MockEngine(_output);
                t.Execute().ShouldBeTrue();

                t.RemovedDirectories.Length.ShouldBe(0);
                ((MockEngine)t.BuildEngine).Warnings.ShouldBe(20);
                ((MockEngine)t.BuildEngine).AssertLogContains("MSB3232");
            }
        }