public async Task UpdatePackage_WithValidData_PackagesUpdatedSuccessfully() { //Arrange var version = Guid.NewGuid(); var packageParameters = _fixture .Build <UpdatePackageParameters>() .With(a => a.Status, ShipmentStatus.Delivered) .With(a => a.Version, version) .Create(); var trackingCode = _fixture.Create <string>(); var expectedResult = new Package( Guid.NewGuid(), PackageSize.M, 100, false, 200, trackingCode, _fixture.Create <Shipment>(), version, DateTime.UtcNow, null); _mockPackageRepository .Setup(exec => exec.GetPackageByTrackingCode( It.IsAny <string>())) .ReturnsAsync(expectedResult); _mockPackageRepository .Setup(exec => exec.UpdatePackage( It.IsAny <Package>())) .Returns(Task.CompletedTask); //Act var response = await _packagesController .UpdatePackage(trackingCode, packageParameters) as OkResult; //Assert _mockPackageRepository .Verify(exec => exec.GetPackageByTrackingCode( It.IsAny <string>()), Times.Once); _mockPackageRepository .Verify(exec => exec.UpdatePackage( It.IsAny <Package>()), Times.Once); response.StatusCode .Should() .Be((int)HttpStatusCode.OK); }