Integrate Refactor solver sources and dual MSVC CMake builds
This commit is contained in:
@@ -133,3 +133,41 @@ TEST(SourceTargetResolver,
|
||||
EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message,
|
||||
"Duplicate resolved source target 10.");
|
||||
}
|
||||
|
||||
TEST(SourceTargetResolver, OwnsNodeCandidateIndexBeforeDomainCommit) {
|
||||
using fesa::SourceEntityKind;
|
||||
const auto index = [] {
|
||||
const std::vector<fesa::Node> nodes{{{"Part-1", 20, "0020"}, {}, {}},
|
||||
{{"Part-1", 10, "0010"}, {}, {}},
|
||||
{{"Part-2", 10, "0010"}, {}, {}}};
|
||||
const std::vector<fesa::NodeSet> sets{
|
||||
{"Ends", "Part-1", {1U, 0U}, {}},
|
||||
{"Ends", "Part-2", {2U}, {}},
|
||||
{"Repeated", "Part-1", {0U, 1U, 0U, 1U}, {}}};
|
||||
return fesa::SourceTargetIndex::FromNodeDefinitions(nodes, sets);
|
||||
}();
|
||||
const fesa::SourceTargetResolver resolver{index};
|
||||
const auto ends =
|
||||
resolver.Resolve({SourceEntityKind::kNode, "part-1", "ENDS"});
|
||||
ASSERT_TRUE(ends.HasValue());
|
||||
EXPECT_EQ(Indices(ends.Value()), (std::vector<fesa::EntityIndex>{1U, 0U}));
|
||||
EXPECT_EQ(ends.Value()[0U].source_id.source_label_text, "0010");
|
||||
EXPECT_EQ(ends.Value()[1U].source_id.source_label_text, "0020");
|
||||
const auto direct =
|
||||
resolver.Resolve({SourceEntityKind::kNode, "Part-2", "10"});
|
||||
ASSERT_TRUE(direct.HasValue());
|
||||
EXPECT_EQ(Indices(direct.Value()), (std::vector<fesa::EntityIndex>{2U}));
|
||||
ExpectFailure(index, {SourceEntityKind::kNode, "", "Ends"},
|
||||
"ambiguous-source-target");
|
||||
const auto repeated =
|
||||
resolver.Resolve({SourceEntityKind::kNode, "Part-1", "Repeated"});
|
||||
ASSERT_FALSE(repeated.HasValue());
|
||||
ASSERT_EQ(repeated.GetStatus().Diagnostics().size(), 2U);
|
||||
EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].message,
|
||||
"Duplicate resolved source target 0020.");
|
||||
EXPECT_EQ(repeated.GetStatus().Diagnostics()[1U].message,
|
||||
"Duplicate resolved source target 0010.");
|
||||
const auto empty = fesa::SourceTargetIndex::FromNodeDefinitions({}, {});
|
||||
ExpectFailure(empty, {SourceEntityKind::kNode, "", "1"},
|
||||
"unresolved-source-target");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user