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);
        }
Exemplo n.º 3
0
        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);
        }