Skip to content

Commit

Permalink
Log when BEFORE or AFTER patch deleted
Browse files Browse the repository at this point in the history
This is pretty much equivalent to unsatisfied NEEDS, so it should be
noted as such.  Also log on an unsatisfied FOR, although this shouldn't
happen (make it a warning)
  • Loading branch information
blowfishpro committed Sep 14, 2017
1 parent 331ab18 commit 3f8adee
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 0 deletions.
3 changes: 3 additions & 0 deletions ModuleManager/IPatchProgress.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ public interface IPatchProgress
void NeedsUnsatisfiedRoot(UrlDir.UrlConfig url);
void NeedsUnsatisfiedNode(UrlDir.UrlConfig url, NodeStack path);
void NeedsUnsatisfiedValue(UrlDir.UrlConfig url, NodeStack path, string valName);
void NeedsUnsatisfiedBefore(UrlDir.UrlConfig url);
void NeedsUnsatisfiedFor(UrlDir.UrlConfig url);
void NeedsUnsatisfiedAfter(UrlDir.UrlConfig url);
void ApplyingCopy(UrlDir.UrlConfig original, UrlDir.UrlConfig patch);
void ApplyingDelete(UrlDir.UrlConfig original, UrlDir.UrlConfig patch);
void ApplyingUpdate(UrlDir.UrlConfig original, UrlDir.UrlConfig patch);
Expand Down
3 changes: 3 additions & 0 deletions ModuleManager/PatchExtractor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ public static PatchList SortAndExtractPatches(UrlDir databaseRoot, IEnumerable<s
else
{
modNotFound = true;
progress.NeedsUnsatisfiedBefore(url);
}
}
else if (forMatch.Success)
Expand All @@ -103,6 +104,7 @@ public static PatchList SortAndExtractPatches(UrlDir databaseRoot, IEnumerable<s
else
{
modNotFound = true;
progress.NeedsUnsatisfiedFor(url);
}
}
else if (afterMatch.Success)
Expand All @@ -115,6 +117,7 @@ public static PatchList SortAndExtractPatches(UrlDir databaseRoot, IEnumerable<s
else
{
modNotFound = true;
progress.NeedsUnsatisfiedAfter(url);
}
}
else
Expand Down
21 changes: 21 additions & 0 deletions ModuleManager/PatchProgress.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,27 @@ public void NeedsUnsatisfiedValue(UrlDir.UrlConfig url, NodeStack path, string v
NeedsUnsatisfiedCount += 1;
}

public void NeedsUnsatisfiedBefore(UrlDir.UrlConfig url)
{
logger.Info($"Deleting root node in file {url.parent.url} node: {url.type} as it can't satisfy its BEFORE");
NeedsUnsatisfiedCount += 1;
NeedsUnsatisfiedRootCount += 1;
}

public void NeedsUnsatisfiedFor(UrlDir.UrlConfig url)
{
logger.Warning($"Deleting root node in file {url.parent.url} node: {url.type} as it can't satisfy its FOR (this shouldn't happen)");
NeedsUnsatisfiedCount += 1;
NeedsUnsatisfiedRootCount += 1;
}

public void NeedsUnsatisfiedAfter(UrlDir.UrlConfig url)
{
logger.Info($"Deleting root node in file {url.parent.url} node: {url.type} as it can't satisfy its AFTER");
NeedsUnsatisfiedCount += 1;
NeedsUnsatisfiedRootCount += 1;
}

public void Error(UrlDir.UrlConfig url, string message)
{
ErrorCount += 1;
Expand Down
15 changes: 15 additions & 0 deletions ModuleManagerTests/PatchExtractorTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,21 @@ public void TestSortAndExtractPatches()
AssertUrlCorrect("@NODE[foo]:HAS[#bar]", afterMod2Configs[1], currentPatches[1]);
AssertUrlCorrect("@NADE", afterMod2Configs[2], currentPatches[2]);
AssertUrlCorrect("@NADE", afterMod2Configs[3], currentPatches[3]);

progress.Received().NeedsUnsatisfiedBefore(beforeMod3Configs[0]);
progress.Received().NeedsUnsatisfiedBefore(beforeMod3Configs[1]);
progress.Received().NeedsUnsatisfiedBefore(beforeMod3Configs[2]);
progress.Received().NeedsUnsatisfiedBefore(beforeMod3Configs[3]);

progress.Received().NeedsUnsatisfiedFor(forMod3Configs[0]);
progress.Received().NeedsUnsatisfiedFor(forMod3Configs[1]);
progress.Received().NeedsUnsatisfiedFor(forMod3Configs[2]);
progress.Received().NeedsUnsatisfiedFor(forMod3Configs[3]);

progress.Received().NeedsUnsatisfiedAfter(afterMod3Configs[0]);
progress.Received().NeedsUnsatisfiedAfter(afterMod3Configs[1]);
progress.Received().NeedsUnsatisfiedAfter(afterMod3Configs[2]);
progress.Received().NeedsUnsatisfiedAfter(afterMod3Configs[3]);
}

[Fact]
Expand Down
60 changes: 60 additions & 0 deletions ModuleManagerTests/PatchProgressTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,66 @@ public void TestNeedsUnsatisfiedValue()
logger.Received().Info("Deleting value in file ghi/jkl subnode: SOME_OTHER_NODE/SOME_OTHER_CHILD_NODE value: some_other_value as it can't satisfy its NEEDS");
}

[Fact]
public void TestNeedsUnsatisfiedBefore()
{
UrlDir.UrlConfig config1 = UrlBuilder.CreateConfig("abc/def", new ConfigNode("SOME_NODE"));
UrlDir.UrlConfig config2 = UrlBuilder.CreateConfig("ghi/jkl", new ConfigNode("SOME_OTHER_NODE"));

Assert.Equal(0, progress.NeedsUnsatisfiedCount);
Assert.Equal(0, progress.NeedsUnsatisfiedRootCount);

progress.NeedsUnsatisfiedBefore(config1);
Assert.Equal(1, progress.NeedsUnsatisfiedCount);
Assert.Equal(1, progress.NeedsUnsatisfiedRootCount);
logger.Received().Info("Deleting root node in file abc/def node: SOME_NODE as it can't satisfy its BEFORE");

progress.NeedsUnsatisfiedBefore(config2);
Assert.Equal(2, progress.NeedsUnsatisfiedCount);
Assert.Equal(2, progress.NeedsUnsatisfiedRootCount);
logger.Received().Info("Deleting root node in file ghi/jkl node: SOME_OTHER_NODE as it can't satisfy its BEFORE");
}

[Fact]
public void TestNeedsUnsatisfiedFor()
{
UrlDir.UrlConfig config1 = UrlBuilder.CreateConfig("abc/def", new ConfigNode("SOME_NODE"));
UrlDir.UrlConfig config2 = UrlBuilder.CreateConfig("ghi/jkl", new ConfigNode("SOME_OTHER_NODE"));

Assert.Equal(0, progress.NeedsUnsatisfiedCount);
Assert.Equal(0, progress.NeedsUnsatisfiedRootCount);

progress.NeedsUnsatisfiedFor(config1);
Assert.Equal(1, progress.NeedsUnsatisfiedCount);
Assert.Equal(1, progress.NeedsUnsatisfiedRootCount);
logger.Received().Warning("Deleting root node in file abc/def node: SOME_NODE as it can't satisfy its FOR (this shouldn't happen)");

progress.NeedsUnsatisfiedFor(config2);
Assert.Equal(2, progress.NeedsUnsatisfiedCount);
Assert.Equal(2, progress.NeedsUnsatisfiedRootCount);
logger.Received().Warning("Deleting root node in file ghi/jkl node: SOME_OTHER_NODE as it can't satisfy its FOR (this shouldn't happen)");
}

[Fact]
public void TestNeedsUnsatisfiedAfter()
{
UrlDir.UrlConfig config1 = UrlBuilder.CreateConfig("abc/def", new ConfigNode("SOME_NODE"));
UrlDir.UrlConfig config2 = UrlBuilder.CreateConfig("ghi/jkl", new ConfigNode("SOME_OTHER_NODE"));

Assert.Equal(0, progress.NeedsUnsatisfiedCount);
Assert.Equal(0, progress.NeedsUnsatisfiedRootCount);

progress.NeedsUnsatisfiedAfter(config1);
Assert.Equal(1, progress.NeedsUnsatisfiedCount);
Assert.Equal(1, progress.NeedsUnsatisfiedRootCount);
logger.Received().Info("Deleting root node in file abc/def node: SOME_NODE as it can't satisfy its AFTER");

progress.NeedsUnsatisfiedAfter(config2);
Assert.Equal(2, progress.NeedsUnsatisfiedCount);
Assert.Equal(2, progress.NeedsUnsatisfiedRootCount);
logger.Received().Info("Deleting root node in file ghi/jkl node: SOME_OTHER_NODE as it can't satisfy its AFTER");
}

[Fact]
public void TestError()
{
Expand Down

0 comments on commit 3f8adee

Please sign in to comment.