public void CreateSemanticNetworkFromNodeCandidates_CreateNodeForRootAndForNodeCandidates() { #region arrange var serviceUnderTests = CreateServiceUnderTest(); FakeNodeRepository.GetByNotionAndType(Arg.Any <string>(), Arg.Any <NotionType>()).Returns((Node)null); var generalType = ReturnsGeneralNotionTypeFromRepository(); var notionTypeId = GeneratedGuids.First; var notionType = Substitute.For <NotionType>(); FakeNotionTypeRepository.GetById(Arg.Is(notionTypeId)).Returns(notionType); var nodeCandidate = new NodeCandidate { IsSaveAsNode = true, Notion = "notion", TypeId = notionTypeId }; var session = CreateFakeSession("baseNotion"); #endregion serviceUnderTests.CreateSemanticNetworkFromNodeCandidates(nodeCandidate.Enumerate(), session); FakeNodeRepository.Received(1) .AddOrUpdate(Arg.Is <Node>(x => x.Notion == "baseNotion" && x.Type == generalType)); FakeNodeRepository.Received(1).AddOrUpdate(Arg.Is <Node>(x => x.Notion == "notion" && x.Type == notionType)); }
public void SaveRelationsAsVergesOfSemanticNetwork() { #region arrange var serviceUnderTests = CreateServiceUnderTest(); FakeNodeRepository.GetByNotionAndType(Arg.Any <string>(), Arg.Any <NotionType>()).Returns((Node)null); FakeVergeRepository.GetByNodesAndTypes(Arg.Any <Node>(), Arg.Any <Node>(), Arg.Any <RelationType>()) .Returns((Verge)null); var source = Substitute.For <Node>(); var destination = Substitute.For <Node>(); var type = Substitute.For <RelationType>(); var groupedRelations = new[] { new GroupedRelation { Source = source, Destination = destination, Type = type, ExpertCount = 4, TotalExpectCount = 5 } }; var session = CreateFakeSession("baseNotion"); #endregion serviceUnderTests.SaveRelationsAsVergesOfSemanticNetwork(groupedRelations, session); FakeVergeRepository.Received(1).AddOrUpdate( Arg.Is <Verge>( x => x.SourceNode == source && x.DestinationNode == destination && x.Weight == 80)); }
public void CreateSemanticNetworkFromNodeCandidates_IfVergeExists_UpdateItAndLinkSession() { #region arrange var serviceUnderTests = CreateServiceUnderTest(); FakeNodeRepository.GetByNotionAndType(Arg.Any <string>(), Arg.Any <NotionType>()).Returns((Node)null); var verge = Substitute.For <Verge>(); FakeVergeRepository.GetByNodesAndTypes( Arg.Is <Node>(x => x.Notion == "source"), Arg.Is <Node>(x => x.Notion == "destination"), Arg.Any <RelationType>()) .Returns(verge); var session = CreateFakeSession("source"); var nodeCandidates = new[] { new NodeCandidate { IsSaveAsNode = true, Notion = "destination", TotalExpert = 5, ExpertCount = 2 } }; #endregion serviceUnderTests.CreateSemanticNetworkFromNodeCandidates(nodeCandidates, session); verge.Received(1).UpdateWeightFromSession(Arg.Is(40), Arg.Is(session)); }
public void CreateSemanticNetworkFromNodeCandidates_IfNodeExistsInRepo_UpdateIt() { #region arrange var serviceUnderTests = CreateServiceUnderTest(); var generalType = ReturnsGeneralNotionTypeFromRepository(); var notionTypeId = GeneratedGuids.First; var notionType = Substitute.For <NotionType>(); FakeNotionTypeRepository.GetById(Arg.Is(notionTypeId)).Returns(notionType); var root = Substitute.For <Node>(); FakeNodeRepository.GetByNotionAndType(Arg.Is("baseNotion"), Arg.Is(generalType)).Returns(root); var node = Substitute.For <Node>(); FakeNodeRepository.GetByNotionAndType(Arg.Is("notion"), Arg.Is(notionType)).Returns(node); var nodeCandidate = new NodeCandidate { IsSaveAsNode = true, Notion = "notion", TypeId = GeneratedGuids.First }; var session = CreateFakeSession("baseNotion"); #endregion serviceUnderTests.CreateSemanticNetworkFromNodeCandidates(nodeCandidate.Enumerate(), session); FakeNodeRepository.Received(1).AddOrUpdate(Arg.Is(root)); FakeNodeRepository.Received(1).AddOrUpdate(Arg.Is(node)); }
public void CreateSemanticNetworkFromNodeCandidates_FilteredByIsSaveAsNode() { #region arrange var serviceUnderTests = CreateServiceUnderTest(); FakeNodeRepository.GetByNotionAndType(Arg.Any <string>(), Arg.Any <NotionType>()).Returns((Node)null); var notionTypeId = GeneratedGuids.First; var notionType = Substitute.For <NotionType>(); FakeNotionTypeRepository.GetById(Arg.Is(notionTypeId)).Returns(notionType); var nodeCandidates = new[] { new NodeCandidate { IsSaveAsNode = true, Notion = "notion", TypeId = notionTypeId }, new NodeCandidate { IsSaveAsNode = false, Notion = "notion2", TypeId = notionTypeId } }; var session = CreateFakeSession("baseNotion"); #endregion serviceUnderTests.CreateSemanticNetworkFromNodeCandidates(nodeCandidates, session); FakeNodeRepository.Received(1).AddOrUpdate(Arg.Is <Node>(x => x.Notion == "notion" && x.Type == notionType)); FakeNodeRepository.DidNotReceive() .AddOrUpdate(Arg.Is <Node>(x => x.Notion == "notion2" && x.Type == notionType)); }
public void GetNodesBySession_Anyway_ReturnNodesFromRepository() { var serviceUnderTest = CreateServiceUnderTest(); var session = CreateFakeSession(); var nodes = new List <Node> { Substitute.For <Node>(), Substitute.For <Node>() }; FakeNodeRepository.GetBySession(Arg.Is(session)).Returns(nodes); var result = serviceUnderTest.GetNodesBySession(session); Assert.AreSame(result, nodes); }
public void CreateSemanticNetworkFromNodeCandidates_LinkNodeAndSession() { #region arrange var serviceUnderTests = CreateServiceUnderTest(); var node = Substitute.For <Node>(); FakeNodeRepository.GetByNotionAndType(Arg.Is("baseNotion"), Arg.Any <NotionType>()) .Returns(node); var session = CreateFakeSession("baseNotion"); var nodeCandidates = new NodeCandidate[0]; #endregion serviceUnderTests.CreateSemanticNetworkFromNodeCandidates(nodeCandidates, session); node.Received(1).AddSessionOfExperts(session); }
public void CreateSemanticNetworkFromNodeCandidates_CreateVergesFromRootToEachNodeCandidateSavedAsNode() { #region arrange var serviceUnderTests = CreateServiceUnderTest(); FakeNodeRepository.GetByNotionAndType(Arg.Any <string>(), Arg.Any <NotionType>()).Returns((Node)null); FakeVergeRepository.GetByNodesAndTypes(Arg.Any <Node>(), Arg.Any <Node>(), Arg.Any <RelationType>()) .Returns((Verge)null); var generalRelationType = ReturnsGeneralRelationTypeFromRepository(); var nodeCandidates = new[] { new NodeCandidate { IsSaveAsNode = true, Notion = "notion", ExpertCount = 1, TotalExpert = 5 }, new NodeCandidate { IsSaveAsNode = false, Notion = "notion2" } }; var session = CreateFakeSession("baseNotion"); #endregion serviceUnderTests.CreateSemanticNetworkFromNodeCandidates(nodeCandidates, session); FakeVergeRepository.Received(1).AddOrUpdate( Arg.Is <Verge>( x => x.SourceNode.Notion == "baseNotion" && x.DestinationNode.Notion == "notion" && x.Type == generalRelationType)); FakeVergeRepository.Received(1).AddOrUpdate( Arg.Is <Verge>( x => x.SourceNode.Notion == "notion" && x.DestinationNode.Notion == "baseNotion" && x.Type == generalRelationType)); }
public void CreateSemanticNetworkFromNodeCandidates_CalculateVergeWeight() { #region arrange var serviceUnderTests = CreateServiceUnderTest(); FakeNodeRepository.GetByNotionAndType(Arg.Any <string>(), Arg.Any <NotionType>()).Returns((Node)null); FakeVergeRepository.GetByNodesAndTypes(Arg.Any <Node>(), Arg.Any <Node>(), Arg.Any <RelationType>()) .Returns((Verge)null); var nodeCandidates = new[] { new NodeCandidate { IsSaveAsNode = true, Notion = "notion", TotalExpert = 5, ExpertCount = 2 }, new NodeCandidate { IsSaveAsNode = true, Notion = "notion2", TotalExpert = 5, ExpertCount = 3 } }; var session = CreateFakeSession("baseNotion"); #endregion serviceUnderTests.CreateSemanticNetworkFromNodeCandidates(nodeCandidates, session); FakeVergeRepository.Received(1).AddOrUpdate( Arg.Is <Verge>( x => x.SourceNode.Notion == "baseNotion" && x.DestinationNode.Notion == "notion" && x.Weight == 40)); FakeVergeRepository.Received(1).AddOrUpdate( Arg.Is <Verge>( x => x.SourceNode.Notion == "baseNotion" && x.DestinationNode.Notion == "notion2" && x.Weight == 60)); }