Skip to content

Commit 1c9521d

Browse files
committed
Check for file removal
1 parent 5e7fda4 commit 1c9521d

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

tests/MSBuildDeviceIntegration/Tests/InstallTests.cs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,21 @@ public void AdbTargetChangesAppBundle ()
615615
public void AppWithAndroidJavaSource ()
616616
{
617617
var path = Path.Combine ("temp", TestName);
618+
var itemToDelete = new AndroidItem.AndroidJavaSource ("TestJavaClass2.java") {
619+
Encoding = Encoding.ASCII,
620+
TextContent = () => @"package com.test.java;
621+
622+
public class TestJavaClass2 {
623+
624+
public String test(){
625+
626+
return ""Java is called"";
627+
}
628+
}",
629+
Metadata = {
630+
{ "Bind", "True" },
631+
},
632+
};
618633
var proj = new XamarinAndroidApplicationProject {
619634
OtherBuildItems = {
620635
new AndroidItem.AndroidJavaSource ("TestJavaClass.java") {
@@ -632,6 +647,7 @@ public String test(){
632647
{ "Bind", "True" },
633648
},
634649
},
650+
itemToDelete,
635651
}
636652
};
637653
using (var b = CreateApkBuilder ()) {
@@ -640,12 +656,19 @@ public String test(){
640656
b.AssertHasNoWarnings ();
641657
var generatedCode = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath,
642658
"generated", "src", "Com.Test.Java.TestJavaClass.cs");
659+
var generatedCode2 = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath,
660+
"generated", "src", "Com.Test.Java.TestJavaClass2.cs");
643661
FileAssert.Exists (generatedCode, $"'{generatedCode}' should have been generated.");
662+
FileAssert.Exists (generatedCode2, $"'{generatedCode2}' should have been generated.");
644663
Assert.IsTrue (b.DesignTimeBuild (proj, target: "UpdateGeneratedFiles"), "DTB should have succeeded.");
645664
Assert.IsTrue (b.Output.IsTargetSkipped ("_ClearGeneratedManagedBindings", defaultIfNotUsed: true), $"`_ClearGeneratedManagedBindings` should be skipped on DTB build!");
646665
FileAssert.Exists (generatedCode, $"'{generatedCode}' should have not be deleted on DTB build.");
647-
Assert.IsTrue (b.Build (proj, doNotCleanupOnUpdate: true, saveProject: false), "Second build should have succeeded.");
666+
FileAssert.Exists (generatedCode2, $"'{generatedCode2}' should have not be deleted on DTB build.");
667+
proj.OtherBuildItems.Remove (itemToDelete);
668+
Assert.IsTrue (b.Build (proj, doNotCleanupOnUpdate: true, saveProject: true), "Second build should have succeeded.");
648669
FileAssert.Exists (generatedCode, $"'{generatedCode}' should have not be deleted on second build.");
670+
FileAssert.DoesNotExist (generatedCode2, $"'{generatedCode2}' should have be deleted on second build.");
671+
Assert.IsFalse (b.Output.IsTargetSkipped ("_CompileBindingJava"), $"`_CompileBindingJava` should run on second build!");
649672
Assert.IsTrue (b.Output.IsTargetSkipped ("_ClearGeneratedManagedBindings"), $"`_ClearGeneratedManagedBindings` should be skipped on second build!");
650673
// Call Install directly so Build does not get called automatically
651674
Assert.IsTrue (b.RunTarget (proj, "Install", doNotCleanupOnUpdate: true, saveProject: false), "Install build should have succeeded.");

0 commit comments

Comments
 (0)