public void GetLeafLinksTest() { var leafLink = new LeafLink("origin", "target"); var mockStorage = new DataStorage() { leafLinks = { leafLink } }; Controller testController = new Controller(mockStorage); var result = testController.GetLeafLinks().Value; Assert.Contains(leafLink, result); }
public void ConstructSingleLeafConnections() { // TODO functionality about bidirectionality is currently not being used. Should maybe be removed. foreach (var server in _dataStorage.leafs) { if (server.leafs is null) { continue; } foreach (var leaf in server.leafs) { // TODO leafs to unknown servers are not handled if (!_dataStorage.ipToServerId.ContainsKey(leaf.ip)) { continue; } var targetId = _dataStorage.ipToServerId[leaf.ip]; var oppositeLink = _dataStorage.leafLinks.Where(l => l.source == targetId && l.target == server.server_id ).Select(l => l).FirstOrDefault(); var identicalLink = _dataStorage.leafLinks.Where(l => l.target == targetId && l.source == server.server_id ).Select(l => l).FirstOrDefault(); if (identicalLink is not null) { identicalLink.connections.Add(leaf); // Add leafnode to be fetched when link is clicked } else if (oppositeLink is null) { var link = new LeafLink( server.server_id, targetId ); link.connections.Add(leaf); _dataStorage.leafLinks.Add(link); } else { oppositeLink.connections.Add(leaf); } } } }