Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #6
0
        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());
        }