Exemplo n.º 1
0
        public void GenerateReportTypeA()
        {
            Request req1 = new Request()
            {
                RequestNumber = 1,
                CreationDate  = DateTime.Now,
                Email         = "*****@*****.**",
                Status        = Status.Creada
            };
            Request req2 = new Request()
            {
                CreationDate  = DateTime.Now.AddDays(1),
                Email         = "*****@*****.**",
                RequestNumber = 2,
                Status        = Status.Creada
            };
            Request req3 = new Request()
            {
                CreationDate  = DateTime.Now.AddDays(-1),
                Email         = "*****@*****.**",
                RequestNumber = 3,
                Status        = Status.Aceptada
            };

            ReportTypeAElement repAElem1 = new ReportTypeAElement()
            {
                Amount         = 2,
                Status         = Status.Creada,
                RequestNumbers = new List <int>()
            };

            repAElem1.RequestNumbers.Add(req1.RequestNumber);
            repAElem1.RequestNumbers.Add(req2.RequestNumber);

            ReportTypeAElement repAElem2 = new ReportTypeAElement()
            {
                Amount         = 1,
                Status         = Status.Aceptada,
                RequestNumbers = new List <int>()
            };

            repAElem2.RequestNumbers.Add(req3.RequestNumber);

            List <Request> requests = new List <Request>();

            requests.Add(req1);
            requests.Add(req2);
            requests.Add(req3);

            List <ReportTypeAElement> report = new List <ReportTypeAElement>();

            report.Add(repAElem1);
            report.Add(repAElem2);

            var reqRepoMock   = new Mock <IRequestRepository>(MockBehavior.Strict);
            var adminRepoMock = new Mock <IRepository <Admin> >(MockBehavior.Strict);

            reqRepoMock.Setup(m => m.GetAllByCondition(It.IsAny <Expression <Func <Request, bool> > >())).Returns(requests);

            var adminLogic = new AdminLogic(adminRepoMock.Object, reqRepoMock.Object);

            List <ReportTypeAElement> reportGenerated = (List <ReportTypeAElement>)adminLogic.GenerateReportA(DateTime.Now.AddDays(-1), DateTime.Now.AddDays(+1), "*****@*****.**");

            reqRepoMock.VerifyAll();

            Assert.IsTrue(report.SequenceEqual(reportGenerated));
        }