예제 #1
0
        public async Task <IActionResult> CreateProcessor(CreateProcessorBindingModel createProcessorBindingModel)
        {
            ProcessorServiceModel serviceModel = createProcessorBindingModel.To <ProcessorServiceModel>();

            string url = await this.cloudinaryService.UploadImage(createProcessorBindingModel.FileUpload);

            serviceModel.ImageUrl = url;

            bool result = await this.partsService.CreateProcessorPart(serviceModel);

            return(Redirect("/"));
        }
예제 #2
0
        public async Task CreateProcessorPart_WithInvalidData_ShouldCorrectlyCreateEntity()
        {
            ProcessorServiceModel partServiceModel = new ProcessorServiceModel
            {
                Brand      = null,
                Model      = "Core I9",
                Cores      = 8,
                Clockspeed = 4500,
                ElectricalPowerConsumption = 3000,
                Price    = 2500,
                Socket   = "QWERTY",
                ImageUrl = "https://never-gonna-give-you-up.com/rick.png",
            };

            Exception ex = Assert.ThrowsAsync <ArgumentException>(() => this.partService.CreateProcessorPart(partServiceModel));

            Assert.That(ex.Message == "Processor Brand cannot be null or empty!", "CreateProcessorPart() method with invalid Brand property, should throw ArgumentException with correct message.");
        }
예제 #3
0
        public async Task CreateProcessorPart_WithValidData_ShouldCorrectlyCreateEntity()
        {
            ProcessorServiceModel partServiceModel = new ProcessorServiceModel
            {
                Brand      = "Intel",
                Model      = "Core I9",
                Cores      = 8,
                Clockspeed = 4500,
                ElectricalPowerConsumption = 3000,
                Price    = 2500,
                Socket   = "QWERTY",
                ImageUrl = "https://never-gonna-give-you-up.com/rick.png",
            };

            Processor expectedEntity = new Processor
            {
                Brand      = "Intel",
                Model      = "Core I9",
                Cores      = 8,
                Clockspeed = 4500,
                ElectricalPowerConsumption = 3000,
                Price    = 2500,
                Socket   = "QWERTY",
                ImageUrl = "https://never-gonna-give-you-up.com/rick.png",
            };

            bool result = await this.partService.CreateProcessorPart(partServiceModel);

            Processor actualEntity = await this.pCCDbContext.Processors.FirstOrDefaultAsync();

            // TODO: Check if result is truthy (should be extracted into separate test)
            Assert.True(result, "CreateProcessorPart() method should return truthy value with valid data.");

            // TODO: This can be a constant message with placeholder
            Assert.AreEqual(expectedEntity.Brand, actualEntity.Brand, "CreateProcessorPart() method does not map Brand property correctly.");
            Assert.AreEqual(expectedEntity.Model, actualEntity.Model, "CreateProcessorPart() method does not map Model property correctly.");
            Assert.AreEqual(expectedEntity.Cores, actualEntity.Cores, "CreateProcessorPart() method does not map Cores property correctly.");
            Assert.AreEqual(expectedEntity.Clockspeed, actualEntity.Clockspeed, "CreateProcessorPart() method does not map Clockspeed property correctly.");
            Assert.AreEqual(expectedEntity.ElectricalPowerConsumption, actualEntity.ElectricalPowerConsumption, "CreateProcessorPart() method does not map ElectricalPowerConsumption property correctly.");
            Assert.AreEqual(expectedEntity.Price, actualEntity.Price, "CreateProcessorPart() method does not map Price property correctly.");
            Assert.AreEqual(expectedEntity.Socket, actualEntity.Socket, "CreateProcessorPart() method does not map Socket property correctly.");
            Assert.AreEqual(expectedEntity.ImageUrl, actualEntity.ImageUrl, "CreateProcessorPart() method does not map ImageUrl property correctly.");
            Assert.NotNull(actualEntity.Id, "CreateProcessorPart() method does not set Id property correctly.");
        }
예제 #4
0
        public async Task <bool> CreateProcessorPart(ProcessorServiceModel processorServiceModel)
        {
            if (string.IsNullOrEmpty(processorServiceModel.Brand))
            {
                // TODO: Move message to constant
                // Refactor this
                throw new ArgumentException("Processor Brand cannot be null or empty!");
            }

            Processor processorEntity = processorServiceModel.To <Processor>();

            processorEntity.Id = Guid.NewGuid().ToString();

            bool result = await this.pCCDbContext.AddAsync(processorEntity) != null;

            await this.pCCDbContext.SaveChangesAsync();

            return(result);
        }