public void TestCheckNeeds__Exception() { string[] modList = { "mod1", "mod2" }; UrlDir.UrlConfig config1 = UrlBuilder.CreateConfig(new ConfigNode("SOME_NODE"), file); UrlDir.UrlConfig config2 = UrlBuilder.CreateConfig(new ConfigNode("SOME_NODE:NEEDS[mod3]"), file); UrlDir.UrlConfig config3 = UrlBuilder.CreateConfig(new ConfigNode("SOME_NODE"), file); Exception e = new Exception(); progress.When(p => p.NeedsUnsatisfiedRoot(config2)).Throw(e); NeedsChecker.CheckNeeds(root, modList, progress, logger); progress.DidNotReceiveWithAnyArgs().Exception(null, null); progress.DidNotReceiveWithAnyArgs().Error(null, null); string expected = @" Exception while checking needs on root node : abc/def/SOME_NODE:NEEDS[mod3] SOME_NODE:NEEDS[mod3] { } ".Replace("\r", null).TrimStart(); progress.Received().Exception(config2, expected, e); Assert.Equal(new[] { config1, config3 }, root.AllConfigs); }