Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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]);
        }
Exemplo n.º 3
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");
 }
Exemplo n.º 4
0
        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;
			}
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
            }
        }