Exemplo n.º 1
0
        public void Can_Load_Xml_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>();

            RequestsXml requests = new RequestsXml
            {
                Requests = new List <RequestXml>
                {
                    new RequestXml {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "10",
                        RequestId = "1"
                    },
                    new RequestXml {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "100",
                        RequestId = "1"
                    }
                }
            };

            XmlSerializer serializer = new XmlSerializer(typeof(RequestsXml));

            var requestXmlTest = "";

            using (var sww = new StringWriter())
                using (XmlWriter xmlWriter = XmlWriter.Create(sww))
                {
                    serializer.Serialize(xmlWriter, requests);
                    requestXmlTest = sww.ToString(); // XML file
                }

            //setup mock file using a memory stream
            var content  = requestXmlTest;
            var fileName = "test.xml";
            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("text/xml");
            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.Xml))
            .Returns(true);

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

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

            int succeededFiles = (int)result.ViewData["SuccessCount"];

            Assert.AreEqual(1, succeededFiles);
        }
Exemplo n.º 2
0
        public void Can_Load_Requests_XML()
        {
            //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>();

            RequestsXml requests = new RequestsXml
            {
                Requests = new List <RequestXml>
                {
                    new RequestXml {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "10",
                        RequestId = "1"
                    },
                    new RequestXml {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "100",
                        RequestId = "1"
                    }
                }
            };

            XmlSerializer serializer = new XmlSerializer(typeof(RequestsXml));

            var requestXmlTest = "";

            using (var sww = new StringWriter())
                using (XmlWriter xmlWriter = XmlWriter.Create(sww))
                {
                    serializer.Serialize(xmlWriter, requests);
                    requestXmlTest = sww.ToString(); // Your XML
                }

            //setup mock file using a memory stream
            var content  = requestXmlTest;
            var fileName = "test.xml";
            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("text/xml");
            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>();


            //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 Can_Load_Orders_From_Xml()
        {
            //preparation - create context with created options passed as argument
            RequestContext context = new RequestContext(CreateNewContextOptions());

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

            RequestsXml requests = new RequestsXml
            {
                Requests = new List <RequestXml>
                {
                    new RequestXml {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "10",
                        RequestId = "1"
                    },
                    new RequestXml {
                        ClientId  = "1",
                        Name      = "test",
                        Price     = "2.2",
                        Quantity  = "100",
                        RequestId = "1"
                    }
                }
            };

            XmlSerializer serializer = new XmlSerializer(typeof(RequestsXml));

            var requestXmlTest = "";

            using (var sww = new StringWriter())
                using (XmlWriter xmlWriter = XmlWriter.Create(sww))
                {
                    serializer.Serialize(xmlWriter, requests);
                    requestXmlTest = sww.ToString(); // Your XML
                }

            //setup mock file using a memory stream
            var content  = requestXmlTest;
            var fileName = "test.xml";
            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("text/xml");
            fileMock.Setup(_ => _.Length).Returns(ms.Length);

            XmlService xmlService = new XmlService(context);

            xmlService.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);
        }