public void CleanClientFiles_Deletes_Generated_Files() { CreateClientFilesTask task = null; MockBuildEngine mockBuildEngine; try { // ==================================================== // Test setup -- generate code by calling Create task // ==================================================== task = CodeGenHelper.CreateClientFilesTaskInstance("CLRCF1", /*includeClientOutputAssembly*/ false); bool success = task.Execute(); if (!success) { mockBuildEngine = task.BuildEngine as MockBuildEngine; Assert.Fail("CreateClientFilesTask failed:\r\n" + mockBuildEngine.ConsoleLogger.Errors); } string generatedCodeOutputFolder = task.GeneratedCodePath; Assert.IsTrue(Directory.Exists(generatedCodeOutputFolder), "Expected task to have created " + generatedCodeOutputFolder); string[] files = Directory.GetFiles(generatedCodeOutputFolder); Assert.AreEqual(2, files.Length, "Code gen should have generated 3 code files"); string generatedFile = Path.Combine(generatedCodeOutputFolder, "ServerClassLib.g.cs"); Assert.IsTrue(File.Exists(generatedFile), "Expected task to have generated " + generatedFile); string copiedFile = Path.Combine(generatedCodeOutputFolder, "TestEntity.shared.cs"); Assert.IsTrue(File.Exists(copiedFile), "Expected task to have copied " + copiedFile); string outputFolder = task.OutputPath; Assert.IsTrue(Directory.Exists(outputFolder), "Expected task to have created " + outputFolder); files = Directory.GetFiles(outputFolder); string generatedFiles = string.Empty; foreach (string file in files) { generatedFiles += (file + Environment.NewLine); } Assert.AreEqual(5, files.Length, "Code gen should have generated this many ancillary files but instead saw:" + Environment.NewLine + generatedFiles); string fileList = Path.Combine(outputFolder, "ClientClassLib.SimpleEntityFiles.txt"); Assert.IsTrue(File.Exists(fileList), "Expected code gen to have created " + fileList + " but saw:" + Environment.NewLine + generatedFiles); string refList = Path.Combine(outputFolder, "ClientClassLib.SimpleEntityClientRefs.txt"); Assert.IsTrue(File.Exists(refList), "Expected code gen to have created " + refList + " but saw:" + Environment.NewLine + generatedFiles); refList = Path.Combine(outputFolder, "ClientClassLib.SimpleEntityServerRefs.txt"); Assert.IsTrue(File.Exists(refList), "Expected code gen to have created " + refList + " but saw:" + Environment.NewLine + generatedFiles); string sourceFileList = Path.Combine(outputFolder, "ClientClassLib.SimpleEntitySourceFiles.txt"); Assert.IsTrue(File.Exists(sourceFileList), "Expected code gen to have created " + sourceFileList + " but saw:" + Environment.NewLine + generatedFiles); string riaLinkList = Path.Combine(outputFolder, "ClientClassLib.SimpleEntityLinks.txt"); Assert.IsTrue(File.Exists(riaLinkList), "Expected code gen to have created " + riaLinkList + " but saw:" + Environment.NewLine + generatedFiles); // ========================================== // Main body of test -- the Clean // ========================================== // Step 1: instantiate Clean task instance and execute it, giving it same info as the Create task CleanClientFilesTask cleanTask = new CleanClientFilesTask(); mockBuildEngine = new MockBuildEngine(); cleanTask.BuildEngine = mockBuildEngine; cleanTask.OutputPath = task.OutputPath; cleanTask.GeneratedCodePath = task.GeneratedCodePath; cleanTask.ClientProjectPath = task.ClientProjectPath; success = cleanTask.Execute(); Assert.IsTrue(success, "Clean task returned false"); // No errors or warnings allowed TestHelper.AssertNoErrorsOrWarnings(mockBuildEngine.ConsoleLogger); // Step 2: validate files created above are gone // TODO, 244509: we no longer remove empty folder // Assert.IsFalse(Directory.Exists(generatedCodeOutputFolder), "Expected clean to have deleted " + generatedCodeOutputFolder); Assert.IsFalse(File.Exists(fileList), "Expected clean to have deleted " + fileList); Assert.IsFalse(File.Exists(refList), "Expected clean to have deleted " + refList); Assert.IsFalse(File.Exists(sourceFileList), "Expected clean to have deleted " + sourceFileList); Assert.IsFalse(File.Exists(riaLinkList), "Expected clean to have deleted " + riaLinkList); // Step 3: verify redundant clean does no harm and succeeds success = cleanTask.Execute(); Assert.IsTrue(success, "Clean task returned false"); } finally { CodeGenHelper.DeleteTempFolder(task); } }