public IEnumerable <NetworkRecord> GetNetworks(string url = null) { var networks = new List <NetworkRecord>(); using (var connection = new SqlConnection(_connectionString)) using (var command = new SqlCommand("GetNetworks", connection)) { command.CommandType = CommandType.StoredProcedure; if (!string.IsNullOrEmpty(url)) { command.Parameters.AddWithValue("@Url", url); } connection.Open(); using (IDataReader reader = command.ExecuteReader()) { while (reader.Read()) { var network = new NetworkRecord(); network.Id = (int)reader["Id"]; network.Name = (string)reader["Name"]; network.Url = (string)reader["Url"]; networks.Add(network); } } } return(networks); }
public INetwork MapNetworkComponentsToNetwork(NetworkRecord networkRecord, IDictionary <int, INode> nodes, IList <CashFlow> cashFlows) { var network = _networkFactory(); network.Name = networkRecord.Name; network.Url = networkRecord.Url; network.Nodes = nodes; network.CashFlows = cashFlows; return(network); }
public void MapNetworkComponentsToNetworkOnSuccessReturnsNetwork() { //arrange var url = "url"; var name = "name"; var networkRecord = new NetworkRecord { Name = name, Url = url }; var nodeId = 1; var node = new Mock <INode>(); node.Setup(n => n.Id).Returns(nodeId); IDictionary <int, INode> nodes = new Dictionary <int, INode> { { nodeId, node.Object } }; var cashFlowId = 3; var cashFlow = new CashFlow { Id = cashFlowId }; IList <CashFlow> cashFlows = new[] { cashFlow }; var network = new Mock <INetwork>(); network.SetupAllProperties(); Func <INetwork> networkFactory = () => network.Object; var mapper = new NetworkMapper(null, null, networkFactory); //act var result = mapper.MapNetworkComponentsToNetwork(networkRecord, nodes, cashFlows); //assert Assert.AreEqual(name, result.Name); Assert.AreEqual(url, result.Url); Assert.AreEqual(nodeId, result.Nodes[nodeId].Id); Assert.AreEqual(cashFlowId, result.CashFlows[0].Id); }
public void GetNetworksOnSuccessReturnsNetworks() { //arrange var network = new NetworkRecord { Id = 1 }; var networks = new[] { network }; var repository = new Mock <INetworkRepository>(); repository.Setup(r => r.GetNetworks(It.IsAny <string>())).Returns(networks); var service = new NetworkService(repository.Object, null, null, null, null, null); //act var results = service.GetNetworks(); //assert Assert.AreEqual(network.Id, results.First().Id); }
public void GetNetworksOnSuccessReturnsNetworks() { //arrange var network = new NetworkRecord { Id = 1 }; var networks = new[] { network }; var service = new Mock <INetworkService>(); service.Setup(s => s.GetNetworks()).Returns(networks); var controller = new NetworkController(service.Object, null); //act var viewResult = (ViewResult)controller.Index(); var result = viewResult.Model as IEnumerable <NetworkRecord>; //assert Assert.AreEqual(network.Id, result.First().Id); }
public void GetNetworkByUrlReturnNetwork() { //arrange var url = "url"; var networkId = 1; var nodeId = 2; var cashFlowId = 3; var nodeRecord = new NodeRecord { Id = nodeId }; var nodeRecords = new SortedDictionary <int, NodeRecord>(); nodeRecords.Add(nodeId, nodeRecord); var node = new Mock <INode>(); node.Setup(n => n.Id).Returns(nodeId); var nodes = new SortedDictionary <int, INode>(); nodes.Add(nodeId, node.Object); var cashFlow = new CashFlow { Id = cashFlowId }; var cashFlows = new[] { cashFlow }; var networkRecord = new NetworkRecord { Id = 1 }; var networkRecords = new[] { networkRecord }; var networkViewModel = new NetworkViewModel { Url = url }; var repository = new Mock <INetworkRepository>(); repository.Setup(r => r.GetNetworks(It.Is <string>(u => u == url))).Returns(networkRecords); var nodeRepository = new Mock <INodeRepository>(); nodeRepository.Setup(r => r.GetNodesByNetworkId(It.Is <int>(id => id == networkId))).Returns(nodeRecords); var nodeMapper = new Mock <INodeMapper>(); nodeMapper .Setup(m => m.MapNodeRecordsToNodes(It.Is <IDictionary <int, NodeRecord> >(dict => dict[nodeId].Id == nodeId))) .Returns(nodes); var cashFlowRepository = new Mock <ICashFlowRepository>(); cashFlowRepository.Setup(r => r.GetCashFlowsByNetworkId(It.Is <int>(id => id == networkId))).Returns(cashFlows); var network = new Mock <INetwork>(); network.Setup(n => n.Url).Returns(url); var networkMapper = new Mock <INetworkMapper>(); networkMapper .Setup(m => m.MapNetworkComponentsToNetwork( It.Is <NetworkRecord>(nr => nr.Id == networkRecord.Id), It.Is <IDictionary <int, INode> >(dict => dict[nodeId].Id == nodeId), It.Is <IList <CashFlow> >(cfs => cfs[0].Id == cashFlow.Id) )) .Returns(network.Object); networkMapper .Setup(m => m.MapNetworkToViewModel( It.Is <INetwork>(n => n.Url == url)) ) .Returns(networkViewModel); var options = new MemoryCacheOptions(); var cache = new MemoryCache(options); var service = new NetworkService(repository.Object, nodeRepository.Object, cashFlowRepository.Object, networkMapper.Object, nodeMapper.Object, cache); //act var result = service.GetNetworkByUrl(url); //assert Assert.AreEqual(url, result.Url); network.Verify(n => n.Calculate()); }