[Fact] // async Task<bool> StartHomeManage(string id, byte[] fileContent) public async Task StartHomeManage_WithGivenRequestIdAndDocumentFile_ShouldInitiateManagementContract() { // Arrange var country = CountryCreator.Create(); var city = CityCreator.Create(country.Id); var home = HomeCreator.CreateAny(city.Id); var image = ImageCreator.CreateForModel(); await this.Context.Countries.AddAsync(country); await this.Context.Cities.AddAsync(city); await this.Context.Homes.AddAsync(home); await this.Context.CloudImages.AddAsync(image); var request = RequestCreator.Create(home); await this.Context.Requests.AddAsync(request); await this.Context.SaveChangesAsync(); var approvedRequest = RequestCreator.CreateManageApproved(home, request.User, request.Id); var user = request.User; this.UserManager .Setup(u => u.FindByIdAsync(user.Id)) .Returns(Task.FromResult(user)); await this.UserManager.Object .AddToRoleAsync(user, "Manager"); var requestService = new Mock <IOwnerRequestService>(); requestService.Setup(x => x.ApproveRequestAsync(request.Id)) .Returns(Task.FromResult(approvedRequest)); var contractService = new Mock <IOwnerContractService>(); contractService.Setup(x => x.CreateManageContractAsync(new byte[1024], request.User)) .Returns(Task.FromResult(true)); var service = new OwnerListingService(this.Context, this.UserManager.Object, requestService.Object, contractService.Object); // Act var result = await service.StartHomeManage(request.Id, new byte[1024]); var changedHomeInfo = await this.Context.Homes.Where(h => h.Id == home.Id).FirstOrDefaultAsync(); var changedUser = await this.Context.Users.Where(u => u.Id == user.Id).FirstOrDefaultAsync(); // Assert result.Should().BeTrue(); changedHomeInfo.ManagerId.Should().Equals(user.Id); changedUser.ManagedHomes.Count().Should().Be(1); }