Exemplo n.º 1
0
        public void Can_Load_Orders_From_Json()
        {
            //preparation - create context with created options passed as argument
            RequestContext context = new RequestContext(CreateNewContextOptions());

            //arrange
            var fileMock = new Mock <IFormFile>();

            RequestsJson requests = new RequestsJson
            {
                Requests = new List <RequestJson>
                {
                    new RequestJson {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "10",
                        RequestId = "1"
                    },
                    new RequestJson {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "100",
                        RequestId = "1"
                    }
                }
            };
            var requestJsonTest = JsonConvert.SerializeObject(requests);

            //setup mock file using a memory stream
            var content  = requestJsonTest;
            var fileName = "test.json";
            var ms       = new MemoryStream();
            var writer   = new StreamWriter(ms);

            writer.Write(content);
            writer.Flush();
            ms.Position = 0;
            fileMock.Setup(_ => _.OpenReadStream()).Returns(ms);
            fileMock.Setup(_ => _.FileName).Returns(fileName);
            fileMock.Setup(_ => _.ContentType).Returns("application/json");
            fileMock.Setup(_ => _.Length).Returns(ms.Length);

            JsonService jsonService = new JsonService(context);

            jsonService.LoadToDb(fileMock.Object);

            var requestTest = (from r in context.Requests
                               where r.ClientId == 1
                               select r);
            var orderTest = (from o in context.Orders
                             where o.ClientId == 1
                             select o);

            Assert.AreEqual(2, requestTest.Count());
            Assert.AreEqual(1, orderTest.Count());
            Assert.AreEqual("test", requestTest.First().Name);
            Assert.AreEqual(242, (int)orderTest.First().Amount);
        }
Exemplo n.º 2
0
        public void Can_Load_Requests_JSON()
        {
            //preparation - create context with created options passed as argument
            RequestContext context = new RequestContext(CreateNewContextOptions());

            List <IFormFile> formFiles = new List <IFormFile>();

            //arrange
            var fileMock = new Mock <IFormFile>();

            RequestsJson requests = new RequestsJson {
                Requests = new List <RequestJson>
                {
                    new RequestJson {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "10",
                        RequestId = "1"
                    },
                    new RequestJson {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "100",
                        RequestId = "1"
                    }
                }
            };
            var requestJsonTest = JsonConvert.SerializeObject(requests);

            //setup mock file using a memory stream
            var content  = requestJsonTest;
            var fileName = "test.json";
            var ms       = new MemoryStream();
            var writer   = new StreamWriter(ms);

            writer.Write(content);
            writer.Flush();
            ms.Position = 0;
            fileMock.Setup(_ => _.OpenReadStream()).Returns(ms);
            fileMock.Setup(_ => _.FileName).Returns(fileName);
            fileMock.Setup(_ => _.ContentType).Returns("application/json");
            fileMock.Setup(_ => _.Length).Returns(ms.Length);

            formFiles.Add(fileMock.Object);

            Mock <IOrderService> mockOrderService = new Mock <IOrderService>();
            Mock <IEnumerable <IFileService> > mockFileServices = new Mock <IEnumerable <IFileService> >();
            IEnumerable <IFileService>         services         = new List <IFileService>
            {
                new JsonService(context),
                new XmlService(context),
                new CsvService(context)
            };
            //mockFileServices.Setup(m => m.FirstOrDefault(It.IsAny<Expression<Func<IFileService, bool>>>()))
            //    .Returns(services.FirstOrDefault());


            FileStrategy         fileStrategy = new FileStrategy(services);
            Mock <IFileStrategy> mockStrategy = new Mock <IFileStrategy>();

            mockStrategy.Setup(m => m.LoadToDb(fileMock.Object, FileExtension.Json))
            .Returns(true);

            //target - create app controller, whose method will be tested
            FileController fileController = new FileController(fileStrategy);

            fileController.FilesLoad(formFiles);

            var requestTest = (from r in context.Requests
                               where r.ClientId == 1
                               select r);
            var orderTest = (from o in context.Orders
                             where o.ClientId == 1
                             select o);

            Assert.AreEqual(2, requestTest.Count());
            Assert.AreEqual(1, orderTest.Count());
            Assert.AreEqual("test", requestTest.First().Name);
            Assert.AreEqual(242, (int)orderTest.First().Amount);
        }
Exemplo n.º 3
0
        public void Cannot_Load_Not_Csv_File()
        {
            //preparation - create context with created options passed as argument
            RequestContext context = new RequestContext(CreateNewContextOptions());

            List <IFormFile> formFiles = new List <IFormFile>();

            //arrange
            var fileMock = new Mock <IFormFile>();

            RequestsJson requests = new RequestsJson
            {
                Requests = new List <RequestJson>
                {
                    new RequestJson {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "10",
                        RequestId = "1"
                    },
                    new RequestJson {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "100",
                        RequestId = "1"
                    }
                }
            };
            var requestJsonTest = JsonConvert.SerializeObject(requests);

            //setup mock file using a memory stream
            var content  = requestJsonTest;
            var fileName = "test.pdf";
            var ms       = new MemoryStream();
            var writer   = new StreamWriter(ms);

            writer.Write(content);
            writer.Flush();
            ms.Position = 0;
            fileMock.Setup(_ => _.OpenReadStream()).Returns(ms);
            fileMock.Setup(_ => _.FileName).Returns(fileName);
            fileMock.Setup(_ => _.ContentType).Returns("application/pdf");
            fileMock.Setup(_ => _.Length).Returns(ms.Length);

            formFiles.Add(fileMock.Object);

            Mock <IOrderService> mockOrderService = new Mock <IOrderService>();
            Mock <IEnumerable <IFileService> > mockFileServices = new Mock <IEnumerable <IFileService> >();
            IEnumerable <IFileService>         services         = new List <IFileService>
            {
                new JsonService(context),
                new XmlService(context),
                new CsvService(context)
            };

            Mock <IFileStrategy> mockStrategy = new Mock <IFileStrategy>();

            mockStrategy.Setup(m => m.LoadToDb(fileMock.Object, FileExtension.Csv))
            .Returns(true);

            //target - create app controller, whose method will be tested
            FileController fileController = new FileController(mockStrategy.Object);

            ViewResult result = (ViewResult)fileController.FilesLoad(formFiles);

            var succeededFiles = result.ViewData["SuccessCount"];
            var wasFailure     = result.ViewData["WasFailure"];

            Assert.AreEqual(0, succeededFiles);
            Assert.AreEqual(true, wasFailure);
        }