Esempio n. 1
0
        public async Task Test(string fileName)
        {
            using var stream = File.Open($"TemplateTests/{fileName}", FileMode.Open);
            IFormFile file = Substitute.For <IFormFile>();

            file.OpenReadStream().Returns(stream);
            var command = new ProductTemplateCommand(Substitute.For <AppSettings>());
            var parsed  = await command.ParseProductTemplate(file, new VerifiedUserContext(new ClaimsPrincipal()));

            Assert.IsTrue(parsed.Count == 1); // total product count
            Assert.IsTrue(parsed.FirstOrDefault()?.Product.ID == "example_id");
            // price schedules test
            Assert.IsTrue(parsed.FirstOrDefault()?.PriceSchedule.ID == "example_ps_id");
            Assert.IsTrue(parsed.FirstOrDefault()?.PriceSchedule.ProductID == "example_id");
            // specs test
            Assert.IsTrue(parsed.FirstOrDefault()?.Specs.Count == 2);
            Assert.IsTrue(parsed.FirstOrDefault()?.Specs.All(s => s.ProductID == "example_id"));
            // spec options test
            var spec = parsed.FirstOrDefault()?.Specs.FirstOrDefault(s => s.ID == "example_spec_id_color");

            Assert.IsTrue(parsed.FirstOrDefault()?.SpecOptions.Count == 2);
            // images test
            Assert.IsTrue(parsed.FirstOrDefault()?.Images.Count == 1);
            Assert.IsTrue(parsed.FirstOrDefault()?.Images.FirstOrDefault()?.ProductID == "example_id");
            // attachments test
            Assert.IsTrue(parsed.FirstOrDefault()?.Attachments.Count == 1);
            Assert.IsTrue(parsed.FirstOrDefault()?.Attachments.FirstOrDefault()?.ProductID == "example_id");
        }
Esempio n. 2
0
        public async Task TimerTest(string fileName, string type)
        {
            using var stream = File.Open($"TemplateTests/{fileName}", FileMode.Open);
            var file = Substitute.For <IFormFile>();

            file.OpenReadStream().Returns(stream);
            var command = new ProductTemplateCommand(Substitute.For <AppSettings>());
            var timer   = new Stopwatch();

            timer.Start();
            switch (type)
            {
            case "flat":
                await command.ParseProductTemplateFlat(file, new VerifiedUserContext(new ClaimsPrincipal()));

                break;

            case "related":
                await command.ParseProductTemplate(file, new VerifiedUserContext(new ClaimsPrincipal()));

                break;
            }
            timer.Stop();
            Assert.IsTrue(timer.Elapsed.Minutes < 5, $"Elapsed time for {type}: {timer.Elapsed.Minutes}");
        }