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("/")); }
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."); }
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."); }
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); }