コード例 #1
0
        public void LoadSource_Successfully()
        {
            var document = _testDoc;

            //  Arrange
            var mockHelper = new Mock<IRenUkHtmlHelper>();
            mockHelper.Setup(l => l.LoadHtmlPage(out document, It.IsAny<string>(), It.IsAny<int>(), It.IsAny<string>()))
                .Returns(HttpStatusCode.OK);
            mockHelper.Setup(a => a.GetTotalAggregatesAndPages(It.IsAny<HtmlDocument>())).Returns(new[] {"3", "1"});
            mockHelper.Setup(n => n.GetAggregateNodes(It.IsAny<HtmlDocument>())).Returns(_aggregateNodes);
            mockHelper.Setup(m => m.GetAggregateName(_aggregateNodesArray[0])).Returns(_aggregateNamesArray[0]);
            mockHelper.Setup(m => m.GetAggregateName(_aggregateNodesArray[1])).Returns(_aggregateNamesArray[1]);
            mockHelper.Setup(m => m.GetAggregateName(_aggregateNodesArray[2])).Returns(_aggregateNamesArray[2]);
            mockHelper.Setup(u => u.GenerateAggregateUrl(It.IsAny<string>(), _aggregateNamesArray[0], It.IsAny<string>()))
                .Returns(rubbishBaseUrl + "name/" + _aggregateNamesArray[0] + "/status/all/region/1094/");
            mockHelper.Setup(u => u.GenerateAggregateUrl(It.IsAny<string>(), _aggregateNamesArray[1], It.IsAny<string>()))
                .Returns(rubbishBaseUrl + "name/" + _aggregateNamesArray[1] + "/status/all/region/1094/");
            mockHelper.Setup(u => u.GenerateAggregateUrl(It.IsAny<string>(), _aggregateNamesArray[2], It.IsAny<string>()))
                .Returns(rubbishBaseUrl + "name/" + _aggregateNamesArray[2] + "/status/all/region/1094/");

            //  Instantiate the datasource class
            var dataSource = new RenUkDataSource(mockHelper.Object);

            //  Act
            var result = dataSource.LoadSource(rubbishBaseUrl);

            //  Assert
            Assert.IsTrue(result, "Expected a successful load of the 3 aggregates, should have returned 'OK'");
        }
コード例 #2
0
        public void LoadSource_NotFound_Unsuccessful()
        {
            var document = _404Doc;

            //  Arrange
            var mockHelper = new Mock<IRenUkHtmlHelper>();
            mockHelper.Setup(l => l.LoadHtmlPage(out document, It.IsAny<string>(), It.IsAny<int>(), It.IsAny<string>()))
                .Returns(HttpStatusCode.NotFound);

            //  Instantiate the datasource class
            var dataSource = new RenUkDataSource(mockHelper.Object);

            //  Act
            var result = dataSource.LoadSource(rubbishBaseUrl);

            //  Assert
            Assert.IsFalse(result, "Expected a successful load of the 3 aggregates, should have returned 'OK'");
        }
コード例 #3
0
        public void Get_UnSuccessful_HttpStatusCode_NotFound()
        {
            var document = _testDoc;

            //  Arrange
            var mockHelper = new Mock<IRenUkHtmlHelper>();
            mockHelper.Setup(l => l.LoadHtmlPage(out document, It.IsAny<string>()))
                .Returns(HttpStatusCode.NotFound);

            //  Instantiate the datasource class
            var dataSource = new RenUkDataSource(mockHelper.Object);

            //  Act
            var result = dataSource.Get(rubbishBaseUrl);

            //  Assert
            Assert.IsNull(result, "Expected 'null' to be returned ");
            //Assert.IsNull(result.Identifier, "Expected 'empty' object to be returned ");
        }
コード例 #4
0
        public void Get_Successful()
        {
            var document = _testDoc;

            //  Arrange
            var mockHelper = new Mock<IRenUkHtmlHelper>();
            mockHelper.Setup(l => l.LoadHtmlPage(out document, It.IsAny<string>()))
                .Returns(HttpStatusCode.OK);
            mockHelper.Setup(n => n.GetAggregateNodes(It.IsAny<HtmlDocument>())).Returns(_aggregateNodes);
            mockHelper.Setup(m => m.GetAggregateName(_aggregateNodesArray[0])).Returns(_aggregateNamesArray[0]);
            mockHelper.Setup(v => v.GetAggregateColumnValues(It.IsAny<HtmlNode>()))
                .Returns("A JSON data object");
            mockHelper.Setup(u => u.GetUrlFromJsonObject(It.IsAny<string>())).Returns("An External URL");

            //  Instantiate the datasource class
            var dataSource = new RenUkDataSource(mockHelper.Object);

            //  Act
            var result = dataSource.Get(rubbishBaseUrl);

            var dataout = result.Data.First().Data;

            //  Assert
            Assert.AreEqual(_aggregateData[1].Identifier, result.Identifier, "Expected Achairn to be returned ");
            Assert.AreEqual("A JSON data object", dataout, "Expected the 'JSON object to be returned in the data");
        }
コード例 #5
0
        public void GetAll_Successful()
        {
            //  Arrange
            var mockHelper = new Mock<IRenUkHtmlHelper>();

            var dataSource = new RenUkDataSource(mockHelper.Object);
            dataSource.SetData(_aggregateData);     // call public method, not on I/F, to set the data for testing

            //  Act
            var result = dataSource.GetAll().ToArray();

            //  Assert
            Assert.AreEqual(3, result.Count(), "Expected the names of 3 import aggregates to be returned.");
            Assert.AreEqual(AchairnFarm, result[0].Identifier, string.Format("Expected first aggregate name to be {0}", AchairnFarm));
            Assert.AreEqual(AchanyEstate, result[1].Identifier, string.Format("Expected first aggregate name to be {0}", AchanyEstate));
            Assert.AreEqual(Achlachan, result[2].Identifier, string.Format("Expected first aggregate name to be {0}", Achlachan));
        }
コード例 #6
0
        public void GetAll_NoAggregates_Unsuccessful()
        {
            //  Arrange
            var mockHelper = new Mock<IRenUkHtmlHelper>();

            var dataSource = new RenUkDataSource(mockHelper.Object);
            dataSource.SetData(new List<ImportAggregate>());     // call public method, not on I/F, to set the data for testing

            //  Act
            var result = dataSource.GetAll().ToArray();

            //  Assert
            Assert.AreEqual(0, result.Count(), "Expected Zero import aggregates to be returned.");
        }