public void CloneNetworkwithBranch() { var node1 = new Node { Name = "node1" }; var node2 = new Node {Name = "node2"}; var channel = new Branch {Name = "branch1", Source = node1, Target = node2}; channel.BranchFeatures.Add(new SimpleBranchFeature() {Branch = channel}); var network = new Network { Name = "network1", Nodes = {node1, node2}, Branches = {channel} }; INetwork clonedNetwork = (INetwork) network.Clone(); clonedNetwork.Branches[0].GetType().Should().Be.EqualTo(network.Branches[0].GetType()); }
public void CloneNetwork() { var node1 = new Node { Name = "node1" }; var node2 = new Node { Name = "node2" }; var branch = new Branch { Name = "branch1", Source = node1, Target = node2 }; branch.BranchFeatures.Add(new SimpleBranchFeature() { Branch = branch }); var network = new Network { Name = "network1", Nodes = { node1, node2 }, Branches = { branch } }; INetwork clonedNetwork = (INetwork) network.Clone(); clonedNetwork.Name = "clone"; clonedNetwork.Branches.Count.Should().Be.EqualTo(1); clonedNetwork.Nodes.Count.Should().Be.EqualTo(2); clonedNetwork.Branches[0].Name.Should().Be.EqualTo("branch1"); clonedNetwork.Branches[0].Source.IncomingBranches.Count.Should().Be.EqualTo(0); clonedNetwork.Branches[0].Source.OutgoingBranches[0].Should().Be.EqualTo(clonedNetwork.Branches[0]); clonedNetwork.Branches[0].Target.IncomingBranches.Count.Should().Be.EqualTo(1); clonedNetwork.Branches[0].GetType().Should().Be.EqualTo(network.Branches[0].GetType()); Assert.AreEqual(clonedNetwork, clonedNetwork.Branches[0].Network); Assert.AreEqual(clonedNetwork, clonedNetwork.Branches[0].BranchFeatures[0].Network); }