public void update_value_object_with_direct_context() { UserTestData.PrepareUser(userId); string houseNo = Guid.NewGuid().ToString("n"); using (var kernel = new Ninject.StandardKernel()) { kernel.ConfigureDirectContext(); var orderingService = kernel.Get <IOrderingService>(); // ACT orderingService.SetUserAddress(userId, new Address() { City = "Poznań", HouseNo = houseNo, Street = "Brzęczyszczykiewicza" }); } using (var db = new MyContext()) { var user = db.Users.FirstOrDefault(u => u.Id == userId); // ups, we updated the object, but didn't reattach it to the new context! AssertThat.AreEqual(houseNo, user.Address.HouseNo); } }
public void Initialize() { var dataContextFactory = new FakeDataContextFactory(); dataContextFactory.DataContext .Setup(x => x.GetUser(It.IsAny <IIdentity>())) .Returns(UserTestData.CreateSysAdmin()); controller = new HomeController(dataContextFactory); controller.SetFakeControllerContext(); controller.HttpContext.User = new GenericPrincipal(new GenericIdentity(""), new string[0]); }
public void ProcessCommand_ForExistingUserCharlie_ReturnsCharliesWall() { new WallHandler ( new UserRepository ( new Dictionary <string, IUser>() { { UserTestData.User_Data().ElementAt(0).Name, UserTestData.User_Data().ElementAt(0) }, { UserTestData.User_Data().ElementAt(1).Name, UserTestData.User_Data().ElementAt(1) }, } ) ).ProcessCommand("Charlie wall"); }
public void make_order_with_context_factory_leaves_consistent_db() { UserTestData.PrepareUser(userId); int initialCount; int initialUserCount; using (var db = new MyContext()) { initialCount = db.Orders.Count(o => o.UserId == userId); initialUserCount = db.Users.Find(userId).OrdersCount; } MyContext.ResetCounters(); using (var kernel = new Ninject.StandardKernel()) { kernel.BindServices() .UseContextFromFactory() .UseSystemTransactions(); var orderingService = kernel.Get <OrderingService>(); orderingService.ShouldThrowAfterOrderAdd = true; try { // ACT MakeOrder(kernel.Get <IOrderingService>()); Assert.Fail("expected exception"); } catch { // ignore } } Assert.AreEqual(1, MyContext.TotalInstancesCreated); Assert.AreEqual(0, MyContext.InstanceCount); using (var db = new MyContext()) { var user = db.Users.Find(userId); var ordersCount = db.Orders.Count(o => o.UserId == userId); Assert.AreEqual(initialUserCount, user.OrdersCount); Assert.AreEqual(initialCount, ordersCount); } }
public static UserTestData Setup(bool userExists) { var testData = new UserTestData() { Repository = new Mock<IMembershipRepository>(), UserName = Guid.NewGuid().ToString(), Password = Guid.NewGuid().ToString(), EmailAddress = Guid.NewGuid().ToString() + "@example.com", PasswordAnswer = Guid.NewGuid().ToString(), PasswordQuestion = Guid.NewGuid().ToString(), IsApproved = true, ProviderUserKey = Guid.NewGuid() }; if(userExists) { testData.SrirachaUser = new SrirachaUser() { UserName = testData.UserName, PasswordQuestion = testData.PasswordQuestion, PasswordAnswer = testData.PasswordAnswer, EmailAddress = testData.EmailAddress, UserGuid = (Guid)testData.ProviderUserKey, CreatedDateTimeUtc = DateTime.UtcNow.AddDays(-5), CreatedByUserName = "******", UpdatedDateTimeUtc = DateTime.UtcNow.AddDays(-10), UpdatedByUserName = "******" }; testData.SrirachaUser.EncryptedPassword = testData.EncryptedPassword; testData.Repository.Setup(i => i.GetUserByUserName(It.Is<string>(j => j == testData.UserName))).Returns(testData.SrirachaUser); testData.Repository.Setup(i => i.TryGetUserByUserName(It.Is<string>(j => j == testData.UserName))).Returns(testData.SrirachaUser); //testData.Repository.Setup(i => i.GetUserByUserGuid(It.Is<Guid>(j => j == testData.ProviderUserKey))).Returns(testData.SrirachaUser); testData.Repository.Setup(i => i.TryGetUserByUserGuid(It.Is<Guid>(j => j == testData.ProviderUserKey))).Returns(testData.SrirachaUser); //testData.Repository.Setup(i => i.GetUserByEmailAddress(It.Is<string>(j => j == testData.EmailAddress))).Returns(testData.SrirachaUser); testData.Repository.Setup(i => i.TryGetUserByEmailAddress(It.Is<string>(j => j == testData.EmailAddress))).Returns(testData.SrirachaUser); } else { testData.Repository.Setup(i => i.GetUserByUserName(It.IsAny<string>())).Throws(new RecordNotFoundException(typeof(SrirachaUser), "UserName", testData.UserName)); testData.Repository.Setup(i => i.TryGetUserByUserName(It.IsAny<string>())).Returns((SrirachaUser)null); //testData.Repository.Setup(i => i.GetUserByUserGuid(It.IsAny<Guid>())).Throws(new RecordNotFoundException(typeof(SrirachaUser), "UserGuid", (Guid)testData.ProviderUserKey)); testData.Repository.Setup(i => i.TryGetUserByUserGuid(It.IsAny<Guid>())).Returns((SrirachaUser)null); //testData.Repository.Setup(i => i.GetUserByEmailAddress(It.IsAny<string>())).Throws(new RecordNotFoundException(typeof(SrirachaUser), "EmailAddress", testData.EmailAddress)); testData.Repository.Setup(i => i.TryGetUserByEmailAddress(It.IsAny<string>())).Returns((SrirachaUser)null); } testData.Repository.Setup(i=>i.CreateUser(It.IsAny<SrirachaUser>())).Returns((SrirachaUser inputUser)=>{inputUser.Id=inputUser.UserName; return inputUser;}); return testData; }
public void make_order_with_context_factory() { UserTestData.PrepareUser(userId); string itemName = $"item-{Guid.NewGuid()}"; int initialCount; int initialUserCount; using (var db = new MyContext()) { initialCount = db.Orders.Count(o => o.UserId == userId); initialUserCount = db.Users.Find(userId).OrdersCount; } MyContext.ResetCounters(); using (var kernel = new Ninject.StandardKernel()) { kernel.BindServices() .UseContextFromFactory() .UseSystemTransactions(); var orderingService = kernel.Get <OrderingService>(); // ACT MakeOrder(kernel.Get <IOrderingService>(), itemName); } // each call to dbcontextfactory.create will create a new instance Assert.AreEqual(3, MyContext.TotalInstancesCreated); Assert.AreEqual(0, MyContext.InstanceCount); using (var db = new MyContext()) { var user = db.Users.Find(userId); var ordersCount = db.Orders.Count(o => o.UserId == userId); Assert.AreEqual(initialUserCount + 1, user.OrdersCount); Assert.AreEqual(initialCount + 1, ordersCount); } }
public void Initialize() { purchasedSkuId = Guid.NewGuid(); transactionRequest = new TransactionRequest { PurchaserName = purchaserName, PurchaserEmail = purchaserEmail, PurchasedSkus = new[] { purchasedSkuId.ToString() } }; feature1 = FeatureTestData.Create(GuidTestData.Create(1)); feature2 = FeatureTestData.Create(GuidTestData.Create(2)); privateKey1 = PrivateKeyTestData.Create(); sku1 = SkuTestData.Create(privateKey1, feature1, feature2); sku1.SkuId = purchasedSkuId; HttpContext.Current = new HttpContext( new HttpRequest("", "http://tempuri.org", ToXmlString(transactionRequest)), new HttpResponse(new StringWriter()) ); mailService = new Mock <FakeMailService>(); dataContextFactory = new FakeDataContextFactory(); dataContextFactory.DataContext .Setup(x => x.GetUser(It.IsAny <IIdentity>())) .Returns(UserTestData.CreateAnonymous()); dataContextFactory.DataContext .Setup(x => x.SKUs) .Returns(new FakeDbSet <SKU> { sku1 }); controller = new TransactionController(dataContextFactory, mailService.Object); }
public void make_order_with_direct_context() { UserTestData.PrepareUser(userId); string itemName = $"item-{Guid.NewGuid()}"; int initialCount; int initialUserCount; using (var db = new MyContext()) { initialCount = db.Orders.Count(o => o.UserId == userId); initialUserCount = db.Users.Find(userId).OrdersCount; } MyContext.ResetCounters(); using (var kernel = new Ninject.StandardKernel()) { kernel.BindServices() .UseContextDirectly() .UseNoTransactions(); MakeOrder(kernel.Get <IOrderingService>(), itemName); } Assert.AreEqual(1, MyContext.TotalInstancesCreated); Assert.AreEqual(0, MyContext.InstanceCount); using (var db = new MyContext()) { var user = db.Users.Find(userId); var ordersCount = db.Orders.Count(o => o.UserId == userId); Assert.AreEqual(initialUserCount + 1, user.OrdersCount); Assert.AreEqual(initialCount + 1, ordersCount); } }
public void update_related_entity_with_direct_context() { UserTestData.PrepareUser(userId); string itemName = $"item-{Guid.NewGuid()}"; using (var kernel = new Ninject.StandardKernel()) { kernel.ConfigureDirectContext(); var orderingService = kernel.Get <IOrderingService>(); // ACT orderingService.SetUserPreferences(userId, itemName); } using (var db = new MyContext()) { var user = db.Users.Include(u => u.UserPreferences).FirstOrDefault(u => u.Id == userId); // ups, we updated the object, but didn't reattach it to the new context! AssertThat.AreEqual(itemName, user.UserPreferences.FavoriteProduct); } }