public void CreateAsyncShouldThrowInvalidOperationExceptionIfUserIsNull() { var userManager = this.GetUserManagerMock().Object; var receiptService = new Mock <IReceiptService>().Object; var db = DbInfrastructure.GetDatabase(); var packageService = new PackageService(db, receiptService, userManager); Func <Task> func = async() => await packageService .CreateAsync("Descr", 15, "Some Address", Guid.NewGuid().ToString()); func.Should().Throw <InvalidOperationException>(); }
public async Task CreateAsyncShouldCreateAndSavePackageToDb() { var db = DbInfrastructure.GetDatabase(); var mockUserManager = this.GetUserManagerMock(); mockUserManager .Setup(m => m.FindByIdAsync(It.IsAny <string>())) .Returns((string id) => db.Users.SingleOrDefaultAsync(u => u.Id == id)); var receiptService = new Mock <IReceiptService>().Object; var packageService = new PackageService(db, receiptService, mockUserManager.Object); var user = new User { UserName = "******" }; await db.AddAsync(user); await db.SaveChangesAsync(); var model = await packageService.CreateAsync(Description, Weight, ShippingAddress, user.Id); var package = await db.Packages.FirstOrDefaultAsync(); package .Should() .Match <Package>(p => p.Description == Description) .And .Match <Package>(p => p.RecipientId == user.Id) .And .Match <Package>(p => p.ShippingAddress == ShippingAddress) .And .Match <Package>(p => p.Status == Status.Pending) .And .Match <Package>(p => p.Weight == Weight); }