public void Save_Id()
        {
            bool addCalled               = false;
            bool updateCalled            = false;
            IPersonRepository repository = new StubIPersonRepository
            {
                AddPerson = x =>
                {
                    addCalled = true;
                },
                UpdatePerson = x =>
                {
                    updateCalled = true;
                }
            };

            this.view.PersonIdField = 3;

            var presenter = new PersonDetailPresenter(this.view, repository, null);

            presenter.Save();

            Assert.IsFalse(addCalled);
            Assert.IsTrue(updateCalled);
            Assert.IsTrue((this.view as MockPersonDetailView).CanUserDelete);
        }
Exemple #2
0
        public void ListAllCount_Filter()
        {
            bool getAllCalled                  = false;
            bool getByCompanyIdCalled          = false;
            IPersonRepository personRepository = new StubIPersonRepository
            {
                GetAll = () =>
                {
                    getAllCalled = true;
                    return(new List <Person>());
                },
                GetByCompanyIdInt32 = x =>
                {
                    getByCompanyIdCalled = true;
                    return(new List <Person>());
                }
            };

            (this.view as MockPersonListView).SelectedCompanyIdField = 2;

            var presenter = new PersonListPresenter(this.view, personRepository, null);
            int actual    = presenter.ListAllCount(10, 0);

            Assert.IsFalse(getAllCalled);
            Assert.IsTrue(getByCompanyIdCalled);
            Assert.AreEqual(0, actual);
        }
        public void ShouldFailAuthenticationForLogon()
        {
            // Arrange
            var person = new Person
            {
                Id           = 1,
                PasswordHash = "IncorrectHash",
                PasswordSalt = "bE3XiWw="
            };

            var logonInfo = new LoginInfo()
            {
                UserName = "******",
                Password = "******"
            };

            var repository = new StubIPersonRepository()
            {
                GetPersonByEmailString = emailAddress => person
            };
            var controller = new AccountController(repository, null, null, new StubIStateProvinceRepository());

            SetupControllerForTests(controller);

            // Act
            var result = controller.Login(logonInfo);

            Assert.AreEqual(result.StatusCode, HttpStatusCode.NotFound);
        }
Exemple #4
0
        public void ListAll_NoFilter()
        {
            bool getAllCalled                  = false;
            bool getByCompanyIdCalled          = false;
            IPersonRepository personRepository = new StubIPersonRepository
            {
                GetAll = () =>
                {
                    getAllCalled = true;
                    return(new List <Person>());
                },
                GetByCompanyIdInt32 = x =>
                {
                    getByCompanyIdCalled = true;
                    return(new List <Person>());
                }
            };

            var presenter = new PersonListPresenter(this.view, personRepository, null);
            IEnumerable <Person> actual = presenter.ListAll(10, 0);

            Assert.IsTrue(getAllCalled);
            Assert.IsFalse(getByCompanyIdCalled);
            Assert.AreEqual(0, actual.Count());
        }
        public void ShouldRegisterUser()
        {
            // Arrange
            var registrationInfo = new RegistrationInfo()
            {
                Addresses = new List <AddressInfo>()
                {
                    new AddressInfo()
                    {
                        AddressLine1 = "123", City = "Redmond", CountryName = "USA", PostalCode = "12345", StateProvinceId = 33
                    }
                },
                CreditCards = new List <CreditCardInfo>()
                {
                    new CreditCardInfo()
                    {
                        CardNumber = "1111222233334444", CardType = "VISA", ExpMonth = 1, ExpYear = 2015
                    }
                },
                EmailAddresses = new List <string>()
                {
                    "*****@*****.**"
                },
                FirstName = "Test",
                LastName  = "User",
                Password  = "******"
            };

            var person = new Person()
            {
                PersonGuid = Guid.NewGuid()
            };

            var personRepository = new StubIPersonRepository()
            {
                SavePersonPerson = newPerson => person
            };
            var shoppingCartRepository = new StubIShoppingCartRepository()
            {
                GetShoppingCartString = shoppingCartId => new ShoppingCart(person.PersonGuid.ToString())
            };
            var orderRepository = new StubISalesOrderRepository()
            {
                IsOrderSavedGuid = shoppingCartId => false
            };
            var controller = new AccountController(personRepository, shoppingCartRepository, orderRepository, new StubIStateProvinceRepository());

            SetupControllerForTests(controller);

            // Act
            var result = controller.Register(registrationInfo);

            // Assert
            Assert.AreEqual(result.StatusCode, HttpStatusCode.Created);
        }
        public void ShouldGetPerson()
        {
            // Arrange
            var personGuid = Guid.NewGuid();
            var person     = new Person {
                FirstName = "Test", LastName = "User", PersonGuid = personGuid
            };

            person.AddAddress(new Address
            {
                AddressLine1    = "street",
                City            = "city",
                PostalCode      = "pcode",
                StateProvinceId = 1
            });
            person.AddCreditCard(new CreditCard
            {
                CardType   = "type",
                CardNumber = "1234567890123456",
                ExpMonth   = 11,
                ExpYear    = 2019
            });
            person.AddEmailAddress("*****@*****.**");

            var stateProvinces = new List <StateProvince>();

            stateProvinces.Add(new StateProvince()
            {
                StateProvinceId = 1, StateProvinceCode = "WA"
            });

            var repository = new StubIPersonRepository {
                GetPersonGuid = id => id.Equals(personGuid) ? person : null
            };
            var stateProvinceRepository = new StubIStateProvinceRepository {
                GetStateProvinces = () => stateProvinces
            };

            var controller = new AccountController(repository, null, null, stateProvinceRepository);

            SetupControllerForTests(controller);

            // Act
            var result       = controller.Get(personGuid.ToString());
            var personDetail = new JavaScriptSerializer().Deserialize <PersonDetail>(result.Content.ReadAsStringAsync().Result);

            // Assert
            Assert.AreEqual(result.StatusCode, HttpStatusCode.OK);
            Assert.AreEqual("Test", personDetail.FirstName);
            Assert.AreEqual("User", personDetail.LastName);
            Assert.AreEqual(1, personDetail.Addresses.Count);
            Assert.AreEqual(1, personDetail.CreditCards.Count);
            Assert.AreEqual(1, personDetail.EmailAddresses.Count);
        }
        public void ShouldReturnBadRequestWhenRegisteringWithInvalidExpYear()
        {
            // Arrange
            var person           = new Person();
            var personRepository = new StubIPersonRepository()
            {
                GetPersonByEmailString = emailAddress => person
            };

            var controller = new AccountController(personRepository, null, null, null);

            SetupControllerForTests(controller);

            // Act
            var result = controller.Register(new RegistrationInfo
            {
                FirstName      = "John",
                LastName       = "Doe",
                Password       = "******",
                EmailAddresses = new List <string> {
                    "*****@*****.**"
                },
                Addresses = new List <AddressInfo>
                {
                    new AddressInfo
                    {
                        AddressLine1    = "X",
                        City            = "Y",
                        PostalCode      = "Z",
                        StateProvinceId = 1
                    }
                },
                CreditCards = new List <CreditCardInfo>
                {
                    new CreditCardInfo
                    {
                        CardType   = "M",
                        CardNumber = "1234567890123456",
                        ExpMonth   = 11,
                        ExpYear    = 5
                    }
                }
            });

            // Assert
            var error = JsonConvert.DeserializeAnonymousType(
                result.Content.ReadAsStringAsync().Result,
                new { Message = string.Empty });

            Assert.AreEqual(result.StatusCode, HttpStatusCode.BadRequest);
        }
        public void GetPerson_ReturnNull()
        {
            // Arrange
            var repository = new StubIPersonRepository()
            {
                GetPersonInt32 = personId => { return(null); }
            };

            // Act
            var result = repository.GetPersonInt32(1);

            // Assert
            Assert.IsNull(result);
        }
        public void Delete_EnsureCalled()
        {
            bool methodCalled            = false;
            IPersonRepository repository = new StubIPersonRepository
            {
                DeleteInt32 = x =>
                {
                    methodCalled = true;
                }
            };

            var presenter = new PersonDetailPresenter(this.view, repository, null);

            presenter.Delete();
            Assert.IsTrue(methodCalled);
        }
        public void ShouldReturnNotFoundPersonForLogon()
        {
            // Arrange
            var repository = new StubIPersonRepository()
            {
                GetPersonByEmailString = emailAddress => null
            };
            var controller = new AccountController(repository, null, null, new StubIStateProvinceRepository());

            SetupControllerForTests(controller);

            // Act
            var result = controller.Login(new LoginInfo());

            // Assert
            Assert.AreEqual(result.StatusCode, HttpStatusCode.NotFound);
        }
        public void GetPerson_ReturnPerson()
        {
            // Arrange
            var person = new Person()
            {
                FirstName = "Test", LastName = "User"
            };
            var repository = new StubIPersonRepository()
            {
                GetPersonInt32 = personId => { return(person); }
            };

            // Act
            var result = repository.GetPersonInt32(1);

            // Assert
            Assert.AreEqual(result, person);
        }
Exemple #12
0
        public void ListAll_NoRecords_NoReturn()
        {
            bool methodCalled            = false;
            IPersonRepository repository = new StubIPersonRepository
            {
                GetAll = () =>
                {
                    methodCalled = true;
                    return(new List <Person>());
                }
            };

            var presenter = new PersonListPresenter(repository);
            IEnumerable <Person> actual = presenter.ListAll(10, 0);

            Assert.IsTrue(methodCalled);
            Assert.AreEqual(0, actual.Count());
        }
        public void ShouldLogonUser()
        {
            // Arrange
            var person = new Person()
            {
                Id           = 1,
                PasswordHash = "/y5qFg+Su7P2S+iiVMKgSHzlSemQan2hYvZywrqSkTE=",
                PasswordSalt = "bE3XiWw=",
                PersonGuid   = Guid.NewGuid()
            };

            var logonInfo = new LoginInfo()
            {
                UserName = "******",
                Password = "******"
            };

            var personRepository = new StubIPersonRepository()
            {
                GetPersonByEmailString = emailAddress => person
            };
            var shoppingCartRepository = new StubIShoppingCartRepository()
            {
                GetShoppingCartString = shoppingCartId => new ShoppingCart(person.PersonGuid.ToString())
            };
            var orderRepository = new StubISalesOrderRepository()
            {
                IsOrderSavedGuid = shoppingCartId => false
            };
            var controller = new AccountController(personRepository, shoppingCartRepository, orderRepository, new StubIStateProvinceRepository());

            SetupControllerForTests(controller);

            // Act
            var result         = controller.Login(logonInfo);
            var returnedPerson = new JavaScriptSerializer().Deserialize <string>(result.Content.ReadAsStringAsync().Result);

            // Assert
            Assert.AreEqual(result.StatusCode, HttpStatusCode.OK);
            Assert.AreEqual(returnedPerson, person.PersonGuid.ToString());
        }
        public void Load_Id()
        {
            bool getAllCalled  = false;
            bool getByIdCalled = false;

            ICompanyRepository companyRepository = new StubICompanyRepository
            {
                GetAll = () =>
                {
                    getAllCalled = true;
                    return(new List <Company>());
                }
            };

            IPersonRepository personRepository = new StubIPersonRepository
            {
                GetByIdInt32 = x =>
                {
                    getByIdCalled = true;
                    return(new Person
                    {
                        FirstName = "John",
                        LastName = "Doe"
                    });
                }
            };

            this.view.PersonIdField = 3;

            var presenter = new PersonDetailPresenter(this.view, personRepository, companyRepository);

            presenter.Load();

            Assert.IsTrue(getAllCalled);
            Assert.IsTrue(getByIdCalled);
            Assert.IsTrue((this.view as MockPersonDetailView).CanUserDelete);
            Assert.AreEqual(3, this.view.PersonIdField);
            Assert.AreEqual("John", this.view.FirstNameField);
            Assert.AreEqual("Doe", this.view.LastNameField);
        }
        public void ShouldReturnNotFoundWhenGetInvalidPerson()
        {
            // Arrange
            var personGuid = Guid.NewGuid();
            var person     = new Person {
                FirstName = "Test", LastName = "User", PersonGuid = personGuid
            };

            var repository = new StubIPersonRepository {
                GetPersonGuid = id => id.Equals(personGuid) ? person : null
            };
            var controller = new AccountController(repository, null, null, new StubIStateProvinceRepository());

            SetupControllerForTests(controller);

            // Act
            var response = controller.Get(Guid.NewGuid().ToString());
            var error    = JsonConvert.DeserializeAnonymousType(response.Content.ReadAsStringAsync().Result, new { Message = string.Empty });

            // Assert
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }
Exemple #16
0
        public void Load_Ensure()
        {
            bool methodCalled = false;

            IPersonRepository  personRepository  = new StubIPersonRepository();
            ICompanyRepository companyRepository = new StubICompanyRepository
            {
                GetAll = () =>
                {
                    methodCalled = true;
                    return(new List <Company> {
                        new Company {
                            Id = 1, Name = "Test Company"
                        }
                    });
                }
            };

            var presenter = new PersonListPresenter(this.view, personRepository, companyRepository);

            presenter.Load();
            Assert.IsTrue(methodCalled);
            Assert.AreEqual(1, (this.view as MockPersonListView).CompanyFilterFieldItems.Count());
        }
Exemple #17
0
        public void ShouldSaveOrder()
        {
            // Arrange
            var personGuid = Guid.NewGuid();

            var orderInfo = new OrderInfo()
            {
                BillingAddressId  = 1,
                CartId            = personGuid.ToString(),
                CreditCardId      = 1,
                ShippingAddressId = 1
            };

            var person = new Person()
            {
                Id = 1
            };

            person.AddAddress(new Address
            {
                Id           = 1,
                AddressLine1 = "street 1234",
                City         = "city",
                PostalCode   = "1001"
            });
            person.AddCreditCard(new CreditCard
            {
                Id         = 1,
                CardType   = "card",
                CardNumber = "1234567890123456",
                ExpMonth   = 11,
                ExpYear    = 2019
            });

            var address = new Address()
            {
                Id = 1
            };
            var creditCard = new CreditCard()
            {
                Id = 1
            };

            var shoppingCartItem = new ShoppingCartItem()
            {
                ProductId    = 1,
                ProductName  = "Test Product",
                ProductPrice = 1,
                Quantity     = 1
            };

            var shoppingCart = new ShoppingCart("1");

            shoppingCart.AddItem(shoppingCartItem);

            var inventoryService = new StubIInventoryService
            {
                InventoryAndPriceCheckShoppingCart = shoppingCartToCheck => false
            };

            var personRepository = new StubIPersonRepository
            {
                GetPersonGuid = personId => person,
            };

            var shoppingCartRepository = new StubIShoppingCartRepository
            {
                GetShoppingCartString = shoppingCartId => shoppingCart
            };

            var productRepository = new StubIProductRepository
            {
                GetProductInt32 = productId => new Product()
                {
                    Id = productId
                }
            };

            var controller = new OrdersController(
                new StubIOrderHistoryRepository(),
                shoppingCartRepository,
                personRepository,
                productRepository,
                new StubIOrderService(),
                inventoryService);

            SetupControllerForTests(controller);

            // Act
            var response = controller.Post(orderInfo);

            // Assert
            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
        }