예제 #1
0
            public new void SetUp()
            {
                base.SetUp();

                MockMillAndWetDownService.Setup(m => m.CreateMillAndWetdown(It.IsAny <ICreateMillAndWetdownParameters>()))
                .Returns(new SuccessResult <string>());
            }
예제 #2
0
            public void GivenLineKeyFilter_Get_ReturnsResultsFilteredByLineKey()
            {
                // Arrange
                const string expectedLineKey = "1";

                Fixture.Customizations.Add(new MillAndWetdownSummaryLineKeySpecimenBuilder(expectedLineKey));
                var dataResults = Fixture.CreateMany <IMillAndWetdownSummaryReturn>(10).AsQueryable();

                Assess.IsTrue(dataResults.Any(r => r.ProductionLineKey == expectedLineKey), "The data results do not include the expected line key value.");
                Assess.IsTrue(dataResults.Any(r => r.ProductionLineKey != expectedLineKey), "The data results do not include any line key values other than the expected value.");

                MockMillAndWetDownService.Setup(m => m.GetMillAndWetdownSummaries())
                .Returns(() => new SuccessResult <IQueryable <IMillAndWetdownSummaryReturn> >(dataResults));

                var expectedResults = dataResults.Where(d => d.ProductionLineKey == expectedLineKey).ToList();

                Assess.IsNotEmpty(expectedResults);
                Assess.IsTrue(expectedResults.Any(r => r.ProductionLineKey == expectedLineKey));
                Assert.IsTrue(expectedResults.Count < dataResults.Count());

                IList <IMillAndWetdownSummaryReturn> dataPagerInput = null;

                // Act
                var results = SystemUnderTest.Get(lineKey: expectedLineKey);

                // Assert
                Assert.AreEqual(expectedResults, results);
                Assert.AreEqual(expectedResults, dataPagerInput);
            }
예제 #3
0
            public void GivenDateRangeFilter_Get_ReturnsResultsWithProductionStartDateOfDateSpecified()
            {
                // Arrange
                var startDate = DateTime.Now.Date;
                var endDate   = DateTime.Now.AddDays(1).Date;

                Fixture.Customizations.Add(new MillAndWetdownSummaryDateRangeSpecimenBuilder(startDate, endDate));
                var dataResults = Fixture.CreateMany <IMillAndWetdownSummaryReturn>(10).AsQueryable();

                MockMillAndWetDownService.Setup(m => m.GetMillAndWetdownSummaries())
                .Returns(new SuccessResult <IQueryable <IMillAndWetdownSummaryReturn> >(dataResults));

                IList <IMillAndWetdownSummaryReturn> dataPagerInput = null;
                var expectedResults = dataResults.Where(m => m.ProductionBegin >= startDate.Date && m.ProductionBegin < endDate.AddDays(1).Date).ToList();

                //Assess
                Assess.IsNotEmpty(expectedResults);
                Assess.IsTrue(expectedResults.Any(r => r.ProductionBegin.Date == startDate.Date), "No records contain a beginning production date equal to the start date range filter.");
                Assess.IsTrue(expectedResults.Any(r => r.ProductionBegin.Date == endDate.Date), "No records contain a beginning production date equal to the end date range filter.");
                Assess.IsTrue(expectedResults.Count < dataResults.Count());

                // Act
                var results = SystemUnderTest.Get(startDate, endDate);

                // Assert
                Assert.AreEqual(expectedResults, results);
                Assert.AreEqual(expectedResults.Count, dataPagerInput.Count());
            }
예제 #4
0
            public void GivenSingleDateFilter_Get_ReturnsResultsWithProductionStartDateOfDateSpecified()
            {
                // Arrange
                var dateFilter = DateTime.Now;

                Fixture.Customizations.Add(new MillAndWetdownSummaryDateRangeSpecimenBuilder(dateFilter));
                var dataResults = Fixture.CreateMany <IMillAndWetdownSummaryReturn>(10).AsQueryable();

                MockMillAndWetDownService.Setup(m => m.GetMillAndWetdownSummaries())
                .Returns(new SuccessResult <IQueryable <IMillAndWetdownSummaryReturn> >(dataResults));

                IList <IMillAndWetdownSummaryReturn> dataPagerInput = null;
                var expectedResults = dataResults.Where(m => m.ProductionBegin >= dateFilter.Date && m.ProductionBegin < dateFilter.Date.AddDays(1)).ToList();

                //Assess
                Assess.IsNotEmpty(expectedResults);
                Assess.AreNotEqual(expectedResults.Count, dataResults.Count());

                // Act
                var results = SystemUnderTest.Get(dateFilter);

                // Assert
                Assert.AreEqual(expectedResults, results);
                Assert.AreEqual(expectedResults.Count, dataPagerInput.Count());
            }
예제 #5
0
            public void IntegratedDataResultsAdapterTest()
            {
                // Arrange
                MockMillAndWetDownService.Setup(m => m.GetMillAndWetdownSummaries())
                .Returns(new SuccessResult <IQueryable <IMillAndWetdownSummaryReturn> >(Fixture.CreateMany <IMillAndWetdownSummaryReturn>().AsQueryable()));
                var systemUnderTest = new MillWetdownController(MockMillAndWetDownService.Object, MockUserIdentityProvider.Object);

                // Act
                systemUnderTest.Get();

                // Assert
                Assert.Pass();
            }
예제 #6
0
            public void Get_ReturnsPagedResultsFromService()
            {
                // Arrange
                var expectedResults = Fixture.CreateMany <IMillAndWetdownSummaryReturn>().AsQueryable();

                MockMillAndWetDownService.Setup(m => m.GetMillAndWetdownSummaries())
                .Returns(new SuccessResult <IQueryable <IMillAndWetdownSummaryReturn> >(expectedResults));

                // Act
                var actualResults = SystemUnderTest.Get();

                // Assert
                Assert.AreEqual(expectedResults, actualResults);
            }
예제 #7
0
            public void ReturnsExpectedResultForLotKey()
            {
                // Arrange
                const string expectedLot    = "01 13 123 01";
                var          expectedResult = Fixture.Create <IMillAndWetdownDetailReturn>();

                MockMillAndWetDownService.Setup(m => m.GetMillAndWetdownDetail(expectedLot))
                .Returns(new SuccessResult <IMillAndWetdownDetailReturn>(expectedResult));

                // Act
                var actualResult = SystemUnderTest.Get(expectedLot);

                // Assert
                Assert.IsNotNull(actualResult);
                Assert.AreEqual(expectedResult, actualResult);
            }
예제 #8
0
            public void GivenPagedDataParameters_Get_ExecutesPagingAccordingly()
            {
                // Arrange
                const int pageSize  = 5;
                const int skipCount = 5;

                var dataResults = Fixture.CreateMany <IMillAndWetdownSummaryReturn>(10).AsQueryable();

                MockMillAndWetDownService.Setup(m => m.GetMillAndWetdownSummaries())
                .Returns(new SuccessResult <IQueryable <IMillAndWetdownSummaryReturn> >(dataResults));

                var expectedResults = dataResults.Skip(skipCount).Take(pageSize);

                // Act
                var actualResults = SystemUnderTest.Get(skipCount: skipCount, pageSize: pageSize);

                // Assert
                Assert.AreEqual(expectedResults, actualResults);
            }
예제 #9
0
            public void WhenServiceReturnsFailureResult_Get_ThrowsHttpResponceExceptionWith500InternalServerErrorStatusCode()
            {
                // Arrange
                MockMillAndWetDownService.Setup(m => m.GetMillAndWetdownSummaries())
                .Returns(new FailureResult <IQueryable <IMillAndWetdownSummaryReturn> >());
                HttpStatusCode?statusCode = null;

                // Act
                try
                {
                    SystemUnderTest.Get();
                }
                catch (HttpResponseException ex)
                {
                    statusCode = ex.Response.StatusCode;
                }

                // Assert
                Assert.IsNotNull(statusCode);
                Assert.AreEqual(HttpStatusCode.InternalServerError, statusCode);
            }