public async Task EditAsync_WithCorrectData_ShouldEditAssetCorrectly() { string errorMessagePrefix = "AssetsService EditAsync() method does not work properly."; var context = OmmDbContextInMemoryFactory.InitializeContext(); await SeedData(context); this.assetsService = new AssetsService(context); AssetEditDto expectedResult = (await context.Assets.FirstAsync()).To <AssetEditDto>(); expectedResult.ReferenceNumber = "New Ref Number"; expectedResult.Make = "New make"; expectedResult.Model = "New model"; expectedResult.InventoryNumber = "190828-OLC-Changed Number"; expectedResult.DateOfAquire = "29-08-2019"; expectedResult.EmployeeId = "02"; expectedResult.AssetTypeId = 3; await this.assetsService.EditAsync(expectedResult); var actualResult = (await context.Assets.FirstAsync()).To <AssetEditDto>(); Assert.True(expectedResult.InventoryNumber == actualResult.InventoryNumber, errorMessagePrefix + " " + "InventoryNumber is not changed properly."); Assert.True(expectedResult.Make == actualResult.Make, errorMessagePrefix + " " + "Make is not changed properly."); Assert.True(expectedResult.Model == actualResult.Model, errorMessagePrefix + " " + "Model is not changed properly."); Assert.True(expectedResult.ReferenceNumber == actualResult.ReferenceNumber, errorMessagePrefix + " " + "ReferenceNumber is not changed properly."); Assert.True(expectedResult.DateOfAquire == actualResult.DateOfAquire, errorMessagePrefix + " " + "DateOfAquire is not changed properly."); Assert.True(expectedResult.EmployeeId == actualResult.EmployeeId, errorMessagePrefix + " " + "EmployeeId is not changed properly."); Assert.True(expectedResult.AssetTypeId == actualResult.AssetTypeId, errorMessagePrefix + " " + "AssetTypeId is not changed properly."); }
public async Task EditAsync_WithInvalidAssetId_ShouldThrowNullReferenceException() { var context = OmmDbContextInMemoryFactory.InitializeContext(); await SeedData(context); this.assetsService = new AssetsService(context); string invalidAssetId = "InvalidId"; AssetEditDto expectedResult = (await context.Assets.FirstAsync()).To <AssetEditDto>(); expectedResult.ReferenceNumber = "New Ref Number"; expectedResult.Make = "New make"; expectedResult.Model = "New model"; expectedResult.InventoryNumber = "190828-OLC-Changed Number"; expectedResult.DateOfAquire = "29-08-2019"; expectedResult.EmployeeId = "02"; expectedResult.AssetTypeId = 3; expectedResult.Id = invalidAssetId; var ex = await Assert.ThrowsAsync <NullReferenceException>(() => this.assetsService.EditAsync(expectedResult)); Assert.Equal(string.Format(ErrorMessages.AssetIdNullReference, expectedResult.Id), ex.Message); }
public async Task <bool> EditAsync(AssetEditDto assetToEdit) { var assetType = await this.context.AssetTypes.SingleOrDefaultAsync(at => at.Id == assetToEdit.AssetTypeId); if (assetType == null) { throw new NullReferenceException(string.Format(ErrorMessages.AssetTypeIdNullReference, assetToEdit.AssetTypeId)); } var asset = await this.context.Assets.SingleOrDefaultAsync(a => a.Id == assetToEdit.Id); if (asset == null) { throw new NullReferenceException(string.Format(ErrorMessages.AssetIdNullReference, assetToEdit.Id)); } asset.InventoryNumber = assetToEdit.InventoryNumber; asset.Make = assetToEdit.Make; asset.Model = assetToEdit.Model; asset.ReferenceNumber = assetToEdit.ReferenceNumber; asset.AssetTypeId = assetToEdit.AssetTypeId; asset.EmployeeId = assetToEdit.EmployeeId; asset.DateOfAquire = DateTime.ParseExact(assetToEdit.DateOfAquire, Constants.DATETIME_FORMAT, CultureInfo.InvariantCulture); this.context.Assets.Update(asset); var result = await this.context.SaveChangesAsync(); return(result > 0); }