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); }
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); }
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); }
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); }
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()); }
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); }