public static TestableChat GetTestableChat(string connectionId, StateChangeTracker clientState, ChatUser user, IDictionary<string, Cookie> cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock<IResourceProcessor>(); var chatService = new Mock<IChatService>(); var connection = new Mock<IConnection>(); var settings = new Mock<IApplicationSettings>(); var mockPipeline = new Mock<IHubPipelineInvoker>(); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(settings, resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; chat.Clients = new HubConnectionContext(mockPipeline.Object, mockedConnectionObject, "Chat", connectionId, clientState); var prinicipal = new Mock<IPrincipal>(); var request = new Mock<IRequest>(); request.Setup(m => m.Cookies).Returns(cookies); request.Setup(m => m.User).Returns(prinicipal.Object); // setup context chat.Context = new HubCallerContext(request.Object, connectionId); return chat; }
public static TestableChat GetTestableChat(string clientId, TrackingDictionary clientState, ChatUser user, NameValueCollection cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock<IResourceProcessor>(); var chatService = new Mock<IChatService>(); var connection = new Mock<IConnection>(); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; // setup client agent chat.Agent = new ClientAgent(mockedConnectionObject, "Chat"); var request = new Mock<IRequest>(); request.Setup(m => m.Cookies).Returns(cookies); // setup signal agent var prinicipal = new Mock<IPrincipal>(); chat.Caller = new SignalAgent(mockedConnectionObject, clientId, "Chat", clientState); // setup context chat.Context = new HubContext(new HostContext(request.Object, null, prinicipal.Object), clientId); return chat; }
public void MakesOwnerAllowedIfRoomLocked() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(user); repository.Add(user2); var room = new ChatRoom { Name = "Room", Creator = user, Private = true }; room.Owners.Add(user); user.OwnedRooms.Add(room); user.Rooms.Add(room); room.Users.Add(user); var service = new ChatService(repository, new Mock<ICryptoService>().Object); service.AddOwner(user, user2, room); Assert.True(user2.AllowedRooms.Contains(room)); Assert.True(room.AllowedUsers.Contains(user2)); Assert.True(room.Owners.Contains(user2)); Assert.True(user2.OwnedRooms.Contains(room)); }
public void MakesUserOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(user); repository.Add(user2); var room = new ChatRoom { Name = "Room", Creator = user }; room.Owners.Add(user); user.OwnedRooms.Add(room); user.Rooms.Add(room); room.Users.Add(user); var service = new ChatService(repository); service.AddOwner(user, user2, room); Assert.True(room.Owners.Contains(user2)); Assert.True(user2.OwnedRooms.Contains(room)); }
public void Repository_Supports_Selectors() { var repo = new InMemoryRepository<Order>(); // let's add a couple of orders to work with repo.Add(new Order() { Name = "Order 1", Total = 120.00, OrderDate = new DateTime(2013, 4, 26) }); repo.Add(new Order() { Name = "Order 2", Total = 80.00, OrderDate = new DateTime(2013, 4, 24) }); // normal Get method var order = repo.Get(1); order.OrderId.ShouldEqual(1); // in this case we only need the order name var orderName = repo.Get(1, x => x.Name); orderName.ShouldEqual("Order 1"); // we can also bring back an anonymous type if needed var anonymousType = repo.Get(1, x => new { Name = x.Name, IsExpensiveOrder = x.Total > 100.0 }); anonymousType.IsExpensiveOrder.ShouldBeTrue(); // or we can map it to a specific type we have defined like a ViewModel var viewModel = repo.Get(1, x => new OrderViewModel() {Name = x.Name, IsExpensiveOrder = x.Total > 100.0}); viewModel.IsExpensiveOrder.ShouldBeTrue(); // We have the same options with the GetAll, Find and FindAll as well orderName = repo.Find(x => x.OrderId == 2, x => x.Name); orderName.ShouldEqual("Order 2"); // we can also bring back an anonymous type if needed var anonymousTypes = repo.GetAll(x => new { Name = x.Name, IsExpensiveOrder = x.Total > 100.0 }).ToList(); anonymousTypes.Count.ShouldEqual(2); anonymousTypes.First().Name.ShouldEqual("Order 1"); anonymousTypes.First().IsExpensiveOrder.ShouldBeTrue(); anonymousTypes.Last().Name.ShouldEqual("Order 2"); anonymousTypes.Last().IsExpensiveOrder.ShouldBeFalse(); // or we can map it to a specific type we have defined like a ViewModel var viewModels = repo.FindAll(x => x.OrderId < 5, x => new OrderViewModel() { Name = x.Name, IsExpensiveOrder = x.Total > 100.0 }).ToList(); viewModels.Count.ShouldEqual(2); viewModels.First().Name.ShouldEqual("Order 1"); viewModels.First().IsExpensiveOrder.ShouldBeTrue(); viewModels.Last().Name.ShouldEqual("Order 2"); viewModels.Last().IsExpensiveOrder.ShouldBeFalse(); }
public static IRepository CreateRepository() { var repository = new InMemoryRepository(); repository.Add(new CarImage {Color = "Blue", RegisterPlate = "IOA-303", Speed = 93}); repository.Add(new CarImage {Color = "Blue", RegisterPlate = "IOB-301", Speed = 75}); repository.Add(new CarImage {Color = "Red", RegisterPlate = "IAC-300", Speed = 84}); repository.Add(new CarImage {Color = "Black", RegisterPlate = "AOB-201", Speed = 120}); repository.Add(new CarImage {Color = "Red", RegisterPlate = "BOB-101", Speed = 90}); return repository; }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); var repository = new InMemoryRepository<Product>(); repository.Add(new Product { Available = 10, Title = "Snuten i Hollywood I", ImageFilePath = "Content/images/snuten_i_hollywood_i.jpg", Price = 99m}); repository.Add(new Product { Available = 30, Title = "Snuten i Hollywood II", ImageFilePath = "Content/images/snuten_i_hollywood_ii.jpg", Price = 199m }); repository.Add(new Product { Available = 66, Title = "Snuten i Hollywood III", ImageFilePath = "Content/images/snuten_i_hollywood_iii.jpg", Price = 49m }); repository.Add(new Product { Available = 78, Title = "Snuten i Hollywood IV", ImageFilePath = "Content/images/snuten_i_hollywood_iv.jpg", Price = 69m }); }
public void ExecuteFindAll_With_Selector_Should_Use_Cache_After_First_Call() { var repos = new InMemoryRepository<Contact>(new StandardCachingStrategy<Contact>()); repos.Add(new Contact { Name = "Test1" }); repos.Add(new Contact { Name = "Test2" }); var items = repos.FindAll(x => x.ContactId < 3, x => x.Name); repos.CacheUsed.ShouldBeFalse(); items.Count().ShouldEqual(2); items = repos.FindAll(x => x.ContactId < 3, x => x.Name); repos.CacheUsed.ShouldBeTrue(); items.Count().ShouldEqual(2); }
public void ExecuteFind_Should_Use_Cache_After_First_Call() { var repos = new InMemoryRepository<Contact>(new StandardCachingStrategy<Contact>()); repos.Add(new Contact { Name = "Test1" }); repos.Add(new Contact { Name = "Test2" }); var item= repos.Find(x => x.ContactId == 1); repos.CacheUsed.ShouldBeFalse(); item.ShouldNotBeNull(); item = repos.Find(x => x.ContactId == 1); repos.CacheUsed.ShouldBeTrue(); item.ShouldNotBeNull(); }
public void SharpRepository_Supports_Basic_Crud_Operations() { // Declare your generic InMemory Repository. // Check out HowToAbstractAwayTheGenericRepository.cs for cleaner ways to new up a repo. var repo = new InMemoryRepository<Order, int>(); // Create var create = new Order { Name = "Big sale" }; repo.Add(create); const int expectedOrderId = 1; create.OrderId.ShouldEqual(expectedOrderId); // Read var read = repo.Get(expectedOrderId); read.Name.ShouldEqual(create.Name); // Update read.Name = "Really big sale"; repo.Update(read); var update = repo.Get(expectedOrderId); update.OrderId.ShouldEqual(expectedOrderId); update.Name.ShouldEqual(read.Name); // Delete repo.Delete(update); var delete = repo.Get(expectedOrderId); delete.ShouldBeNull(); }
public void Repository_Handles_Sorting() { var repo = new InMemoryRepository<Order>(); repo.Add(OrdersToLoad()); // there are 2 ways to handle sorting, there is an Expression based way // and a "magic string" based approach. // Why the 2 approaches? // For convenience really. In a Web based applicaiton sometimes it is easier to // post back a string that represents the properrty that you want to sort on. // First, the Expression way var descendingOrders = repo.GetAll(new SortingOptions<Order, DateTime>(x => x.OrderDate, isDescending: true)); descendingOrders.First().OrderId.ShouldEqual(1); var ascendingOrders = repo.GetAll(new SortingOptions<Order, DateTime>(x => x.OrderDate, isDescending: false)); ascendingOrders.First().OrderId.ShouldEqual(2); // You can also combine sortings and selectors (See HowToUseGetSelectors for more info) var descendingNames = repo.GetAll(x => x.Name, new SortingOptions<Order, DateTime>(x => x.OrderDate, isDescending: true)); descendingNames.First().ShouldEqual("Order 1"); // The Magic String approach to sorting // you can see that you don't need the second generic type (the property type to sort on), just the name of the property ascendingOrders = repo.GetAll(new SortingOptions<Order>("OrderDate", isDescending: false)); ascendingOrders.First().OrderId.ShouldEqual(2); // using sorting with FindAll var minDate = DateTime.Now.AddDays(-7); var ordersWithinAWeek = repo.FindAll(x => x.OrderDate > minDate, new SortingOptions<Order, double>(x => x.Total, true)); ordersWithinAWeek.Count().ShouldEqual(2); }
public void EntityStoreAuditsModifiedTime() { var repo = new InMemoryRepository <Peer, string>(); var peer = new Peer { PeerId = PeerIdHelper.GetPeerId("Test") }; repo.Add(peer); var retrievedPeer = repo.Get(peer.DocumentId); retrievedPeer.Touch(); repo.Update(retrievedPeer); var retrievedmodified = repo.Get(peer.DocumentId); var now = DateTime.UtcNow.Date; if (retrievedmodified.Modified == null) { return; } var dateComparer = retrievedmodified.Modified.Value.Date.ToString("MM/dd/yyyy"); // ReSharper disable once SuspiciousTypeConversion.Global // ReSharper disable once ReturnValueOfPureMethodIsNotUsed dateComparer.Should().Equals(now.ToString("MM/dd/yyyy")); }
public void SharpRepository_Supports_FindAll_Filtering_With_Specifications() { var repo = new InMemoryRepository <Order, int>(); for (int i = 1; i <= 5; i++) { repo.Add(new Order { Name = "Order" + i }); } var order1 = repo.FindAll(new OrderByIdSpecification(1)); order1.First().OrderId.ShouldBe(1); var order2 = repo.FindAll(new OrderByNameSpecification("Order2")); order2.First().Name.ShouldBe("Order2"); var spec = new OrderByIdSpecification(3).And(new OrderByNameSpecification("Order3")); var order3 = repo.FindAll(spec); order3.First().OrderId.ShouldBe(3); order3.First().Name.ShouldBe("Order3"); }
public void RemovesClientFromUserClientList() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo", Status = (int)UserStatus.Inactive }; user.ConnectedClients.Add(new ChatClient { Id = "foo", User = user }); user.ConnectedClients.Add(new ChatClient { Id = "bar", User = user }); repository.Add(user); var service = new ChatService(repository, new Mock <ICryptoService>().Object); service.DisconnectClient("foo"); Assert.Equal(1, user.ConnectedClients.Count); Assert.Equal("bar", user.ConnectedClients.First().Id); }
public static TestableChat GetTestableChat(string clientId, TrackingDictionary clientState, ChatUser user, NameValueCollection cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock <IResourceProcessor>(); var chatService = new Mock <IChatService>(); var connection = new Mock <IConnection>(); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; // setup client agent chat.Agent = new ClientAgent(mockedConnectionObject, "Chat"); var request = new Mock <IRequest>(); request.Setup(m => m.Cookies).Returns(cookies); // setup signal agent var prinicipal = new Mock <IPrincipal>(); chat.Caller = new SignalAgent(mockedConnectionObject, clientId, "Chat", clientState); // setup context chat.Context = new HubContext(new HostContext(request.Object, null, prinicipal.Object), clientId); return(chat); }
public static TestableChat GetTestableChat(string connectionId, TrackingDictionary clientState, ChatUser user, NameValueCollection cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock<IResourceProcessor>(); var chatService = new Mock<IChatService>(); var connection = new Mock<IConnection>(); var settings = new Mock<IApplicationSettings>(); settings.Setup(m => m.AuthApiKey).Returns("key"); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(settings, resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; // setup client agent chat.Clients = new ClientProxy(mockedConnectionObject, "Chat"); // setup signal agent var prinicipal = new Mock<IPrincipal>(); var request = new Mock<IRequest>(); request.Setup(m => m.Cookies).Returns(new Cookies(cookies)); request.Setup(m => m.User).Returns(prinicipal.Object); chat.Caller = new StatefulSignalProxy(mockedConnectionObject, connectionId, "Chat", clientState); // setup context chat.Context = new HubCallerContext(request.Object, connectionId); return chat; }
public void Logging_Via_Aspects() { var repository = new InMemoryRepository<Contact, int>(); var contact1 = new Contact() {Name = "Contact 1"}; repository.Add(contact1); repository.Add(new Contact() { Name = "Contact 2"}); repository.Add(new Contact() { Name = "Contact 3"}); contact1.Name += " EDITED"; repository.Update(contact1); repository.Delete(2); repository.FindAll(x => x.ContactId < 50); }
public void ThrowsIfRoomAlreadyLocked() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; repository.Add(user); var room = new ChatRoom { Name = "Room", Creator = user, Private = true }; room.AllowedUsers.Add(user); user.AllowedRooms.Add(room); user.Rooms.Add(room); room.Users.Add(user); var service = new ChatService(repository, new Mock <ICryptoService>().Object); Assert.Throws <InvalidOperationException>(() => service.LockRoom(user, room)); }
public void ExecuteGet_Should_Use_Cache_After_First_Call() { var repos = new InMemoryRepository <Contact>(new StandardCachingStrategy <Contact>(cacheProvider)); repos.Add(new Contact { Name = "Test1" }); repos.Add(new Contact { Name = "Test2" }); var item = repos.Get(1); repos.CacheUsed.ShouldBeTrue(); item.ShouldNotBeNull(); }
public void TestCreate_ShouldReturnValidPizzaObject() { // Setup Fixture var _pizzaRepo = new InMemoryRepository <Pizza>(); var _sizeRepo = new InMemoryRepository <Size>(); _sizeRepo.Add(new Size() { Description = "Familiar", Price = 21m }); var _pizzaService = new PizzaAppService(_pizzaRepo); var expected = new Pizza() { Id = 1, Name = "Big Ozzi", Size = _sizeRepo.Get(1), Toppings = new List <Topping>() { new Topping { Name = "Cheese", Price = 3.5m } } }; // Execute SUT var actual = _pizzaService.Create(expected.Name, expected.Size, expected.Toppings); // Verify Outcomes Assert.Equal(1, _pizzaRepo.Count()); ArePizzasSame(expected, actual); }
public void Second_Get_Call_Should_Get_New_Item_From_Cache() { var repository = new InMemoryRepository <Contact, int>(new TimeoutCachingStrategy <Contact, int>(10) { CachePrefix = "#RepoTimeoutCache" }); repository.Add(new Contact() { Name = "Test User" }); var item = repository.Get(1); // after this call it's in cache item.Name.ShouldEqual("Test User"); repository.Update(new Contact() { ContactId = 1, Name = "Test User EDITED" }); // does update cache var item2 = repository.Get(1); // should get from cache since the timeout hasn't happened item2.Name.ShouldEqual("Test User EDITED"); }
public static TestableChat GetTestableChat(string connectionId, StateChangeTracker clientState, ChatUser user, IDictionary <string, Cookie> cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock <IResourceProcessor>(); var chatService = new Mock <IChatService>(); var connection = new Mock <IConnection>(); var settings = new Mock <IApplicationSettings>(); var mockPipeline = new Mock <IHubPipelineInvoker>(); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(settings, resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; chat.Clients = new HubConnectionContext(mockPipeline.Object, mockedConnectionObject, "Chat", connectionId, clientState); var prinicipal = new Mock <IPrincipal>(); var request = new Mock <IRequest>(); request.Setup(m => m.Cookies).Returns(cookies); request.Setup(m => m.User).Returns(prinicipal.Object); // setup context chat.Context = new HubCallerContext(request.Object, connectionId); return(chat); }
public MainWindow() { InitializeComponent(); // Use this as construction root for simplicity. // In real world app there should be good framework for this and this should be done // outside of main window for reason that then mainwindow is interchangeable too if required. var dataSource = new InMemoryRepository(); // Dummy data for testing... dataSource.Add(new CarImage {Color="Black", RegisterPlate = "ABC-123", Speed = 140}); var messenger = new MessageAggregator(); var reportViewModel = new ReportViewModel(dataSource, messenger); var colorFilter = new ColorFilterViewModel(); var filterViewModel = new FiltersViewModel(new List<IFilter> {colorFilter}, messenger); // Just for testing, apply dummy filter so that data is shown. messenger.Publish(new Messages.FiltersAppliedMessage()); DataContext = new { Report = reportViewModel, Filters = filterViewModel }; }
public void LocksRoomIfOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; repository.Add(user); var room = new ChatRoom { Name = "Room" }; room.Users.Add(user); room.Owners.Add(user); user.OwnedRooms.Add(room); user.Rooms.Add(room); var service = new ChatService(repository, new Mock <ICryptoService>().Object); service.LockRoom(user, room); Assert.True(room.Private); Assert.True(user.AllowedRooms.Contains(room)); Assert.True(room.AllowedUsers.Contains(user)); }
public void UpdateCustomer_ShouldUpdateValidCustomer() { //Fixture Setup var customer = new Customer() { CustomerCode = "1002", FirstName = "Yang", MiddleName = "Ling", LastName = "Yiao", DateOfBirth = DateTime.Now, Gender = "Female", StreetAddress = "6 Kimbery Ave", Suburb = "Chatswood", PostCode = "2065", State = "Sydney", PhoneNo = "4325345435345" }; var customerRepo = new InMemoryRepository <Customer>(); customerRepo.Add(customer); var customerService = new CustomerService(customerRepo); var expected = new Customer() { CustomerCode = "1001", FirstName = "Ken", MiddleName = "Yew", LastName = "Hang", DateOfBirth = DateTime.Now, Gender = "Male", StreetAddress = "5 Kimbery Ave", Suburb = "Lane Cove", PostCode = "2066", State = "Sydney", PhoneNo = "4325435345" }; //Exercise the SUT (system under test) customerService.UpdateCustomer(customer.Id, expected.DateOfBirth, expected.FirstName, expected.LastName, expected.MiddleName, expected.Gender, expected.PhoneNo, expected.StreetAddress, expected.PostCode, expected.Suburb, expected.State); // State Verification var actual = customerRepo.Get(customer.Id); Assert.Equal(1, customerRepo.Count()); Assert.Equal(expected.FirstName, actual.FirstName); Assert.Equal(expected.LastName, actual.LastName); Assert.Equal(expected.DateOfBirth, actual.DateOfBirth); Assert.Equal(expected.Gender, actual.Gender); Assert.Equal(expected.StreetAddress, actual.StreetAddress); Assert.Equal(expected.Suburb, actual.Suburb); Assert.Equal(expected.State, actual.State); Assert.Equal(expected.PostCode, actual.PostCode); Assert.Equal(expected.PhoneNo, actual.PhoneNo); Assert.Equal(expected.CustomerCode, actual.CustomerCode); }
public void ThrowsIfNameIsTaken() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "Test" }; repository.Add(user); repository.Add(new ChatUser() { Name = "taken" }); var service = new ChatService(repository, new Mock <ICryptoService>().Object); Assert.Throws <InvalidOperationException>(() => service.ChangeUserName(user, "taken")); }
public void ForEach_Should_Loop_Through_All() { var i = 0; var repository = new InMemoryRepository<Contact, int>(); repository.Add(new Contact()); repository.Add(new Contact()); repository.Add(new Contact()); repository.Add(new Contact()); repository.Add(new Contact()); foreach (var contact in repository) { i++; } i.ShouldEqual(5); }
public void Add_adds_to_internal_list() { var list = new List<string> { "Apple", "Ball", "Cat", "Dog" }; var repository = new InMemoryRepository<string>(list); repository.Add("DoDo"); Assert.That(list.Contains("DoDo")); }
public void Add_AddsItems() { var subject = new InMemoryRepository <RepositorySubject, int>(1, 2); subject.Add(3); Assert.That(subject.Count(), Is.EqualTo(3)); Assert.That(subject.FindOne(e => e.Id == 3), Is.Not.Null); }
public void Add_AlreadyExisting_AddThemNonetheless() { var subject = new InMemoryRepository <RepositorySubject, int>(1, 2); subject.Add(1); Assert.That(subject.Count(), Is.EqualTo(3)); Assert.That(subject.FindAll(e => e.Id == 1).Count, Is.EqualTo(2)); }
public void ThrowsIfActingUserIsNotAdmin() { var repository = new InMemoryRepository(); var nonAdmin = new ChatUser { Name = "foo" }; var user = new ChatUser { Name = "foo2" }; repository.Add(nonAdmin); repository.Add(user); var service = new ChatService(new Mock<ICache>().Object, repository); Assert.Throws<HubException>(() => service.AddAdmin(nonAdmin, user)); }
public void ThrowsIfActingUserIsNotAdmin() { var repository = new InMemoryRepository(); var nonAdmin = new ChatUser { Name = "foo" }; var user = new ChatUser { Name = "foo2" }; repository.Add(nonAdmin); repository.Add(user); var service = new ChatService(repository, new Mock<ICryptoService>().Object); Assert.Throws<InvalidOperationException>(() => service.AddAdmin(nonAdmin, user)); }
public void DocumentVersionService_GetDocumentVersion_GetsTheVersionWithTheRequestedId() { var documentVersion = new DocumentVersion(); _documentVersionRepository.Add(documentVersion); var version = _documentVersionsAdminService.GetDocumentVersion(documentVersion.Id); version.Should().Be(documentVersion); }
public void Add_adds_to_internal_list() { var list = new List <string> { "Apple", "Ball", "Cat", "Dog" }; var repository = new InMemoryRepository <string>(list); repository.Add("DoDo"); Assert.That(list.Contains("DoDo")); }
public void TryFindOne_MultipleResults_Null() { var subject = new InMemoryRepository <RepositorySubject, int>(new RepositorySubject(1, string.Empty), 2); subject.Add(new RepositorySubject(1, "one")); RepositorySubject entity; Assert.That(subject.TryFindOne(e => e.Id % 2 != 0, out entity), Is.False); Assert.That(entity, Is.Null); }
public CurrentSiteLocatorTests() { CurrentSite = new Site { Name = "Current Site", BaseUrl = "www.currentsite.com", Id = 1 }; _httpRequestBase = A.Fake <HttpRequestBase>(); _inMemoryRepository = new InMemoryRepository <Site>(); _currentSiteLocator = new CurrentSiteLocator(_inMemoryRepository, _httpRequestBase); _inMemoryRepository.Add(CurrentSite); }
public void Changed_Convention_To_SomeRandomPrimaryKeyProperty_Should_Work() { var repository = new InMemoryRepository<ConventionTestItem3>(); repository.Conventions.GetPrimaryKeyName = _ => "SomeRandomPrimaryKeyProperty" ; var item = new ConventionTestItem3() { Name = "Test1" }; repository.Add(item); // The PK should have been found and updated so it's not zero anymore item.SomeRandomPrimaryKeyProperty.ShouldNotEqual(0); }
public static InMemoryRepository<Photo> GetPhotoRepository(int numberOfPhotos = TestConstants.DefaultNumberOfModels) { var repo = new InMemoryRepository<Photo>(); for (int i = 0; i < numberOfPhotos; i++) { repo.Add(GetValidPhoto(i)); } return repo; }
public ActionResult Create([Bind(Include = "Id,Name")] Administrator administrator) { if (ModelState.IsValid) { administrator.Id = db.GetAll <Administrator>().Select(a => a.Id).Max() + 1; db.Add(administrator); return(RedirectToAction("Index")); } return(View(administrator)); }
public ActionResult Create([Bind(Include = "Id,Username")] ApplicationUser applicationUser) { if (ModelState.IsValid) { applicationUser.Id = db.GetAll <ApplicationUser>().Select(a => a.Id).Max() + 1; db.Add(applicationUser); return(RedirectToAction("Index")); } return(View(applicationUser)); }
/// <summary> /// Fired when a client joins the chat. Here round trip state is available and we can register the user in the list /// </summary> public void Joined() { ChatUser user = new ChatUser() { Id = Context.ConnectionId, Username = Clients.Caller.username }; _repository.Add(user); Clients.All.joins(Context.ConnectionId, Clients.Caller.username, DateTime.Now); }
public void TestUpdate_ShouldReturnUpdatedPizzaObjectFromRepo() { // Setup Fixture var _pizzaRepo = new InMemoryRepository <Pizza>(); var _sizeRepo = new InMemoryRepository <Size>(); _sizeRepo.Add(new Size() { Description = "Familiar", Price = 21m }); _sizeRepo.Add(new Size() { Description = "Personal", Price = 12m }); var pizza = new Pizza() { Id = 1, Name = "Big Ozzi", Size = _sizeRepo.Get(1), Toppings = new List <Topping>() { new Topping { Name = "Cheese", Price = 3.5m } } }; _pizzaRepo.Add(pizza); var _pizzaService = new PizzaAppService(_pizzaRepo); var expected = new Pizza() { Id = 1, Name = "Mighty Hawaian", Size = _sizeRepo.Get(2), Toppings = new List <Topping>() { new Topping { Name = "Cheddar Cheese", Price = 4.5m } } }; // Execute SUT _pizzaService.Update(expected.Id, expected.Name, expected.Size, expected.Toppings); var actual = _pizzaRepo.Get(expected.Id); // Verify Outcomes ArePizzasSame(expected, actual); }
public void Add_Should_Save_And_Assign_1_To_InMemory_Int_Id() { var dbPath = EfDataDirectoryFactory.Build(); var repository = new InMemoryRepository <ContactInt, int>(); var contact = new ContactInt { Name = "Test User" }; repository.Add(contact); contact.ContactIntId.ShouldEqual(1); }
public void ExecuteGetAll_With_Selector_Should_Use_Cache_After_First_Call() { var repos = new InMemoryRepository <Contact>(new StandardCachingStrategy <Contact>(cacheProvider)); repos.Add(new Contact { Name = "Test1" }); repos.Add(new Contact { Name = "Test2" }); var items = repos.GetAll(x => x.Name); repos.CacheUsed.ShouldBeFalse(); items.Count().ShouldBe(2); items = repos.GetAll(x => x.Name); repos.CacheUsed.ShouldBeTrue(); items.Count().ShouldBe(2); }
public void ThrowsIfNameInUse() { var repository = new InMemoryRepository(); repository.Add(new ChatUser() { Name = "taken" }); var service = new MembershipService(repository, new Mock<ICryptoService>().Object); Assert.Throws<InvalidOperationException>(() => service.AddUser("taken", "email", password: null)); }
public void ExecuteFind_Should_Use_Cache_After_First_Call() { var repos = new InMemoryRepository <Contact>(new StandardCachingStrategy <Contact>()); repos.Add(new Contact { Name = "Test1" }); repos.Add(new Contact { Name = "Test2" }); var item = repos.Find(x => x.ContactId == 1); repos.CacheUsed.ShouldBeFalse(); item.ShouldNotBeNull(); item = repos.Find(x => x.ContactId == 1); repos.CacheUsed.ShouldBeTrue(); item.ShouldNotBeNull(); }
public IJabbrRepository CreateRoomRepository() { var repository = new InMemoryRepository(); var room = new ChatRoom() { Name = "hashtag" }; var user = new ChatUser() { Name = "testhashtaguser" }; repository.Add(room); room.Users.Add(user); user.Rooms.Add(room); return repository; }
public static InMemoryRepository<Comment> GetCommentRepository(int numberOfCommens = TestConstants.DefaultNumberOfModels) { var repo = new InMemoryRepository<Comment>(); for (int i = 0; i < numberOfCommens; i++) { repo.Add(GetValidComment(i)); } return repo; }
public ActionResult Create([Bind(Include = "Id,Name,EnrollmentDate,DateOfBirth,Address")] Student student) { if (ModelState.IsValid) { student.Id = db.GetAll <Student>().Max(s => s.Id) + 1; db.Add(student); return(RedirectToAction("Index")); } return(View(student)); }
public void TestObject_Should_Not_Have_MinValue_For_Created_After_Add() { var repository = new InMemoryRepository<AspectTestObject>(); var testObject = new AspectTestObject {AspectTestObjectId = 1, Name = "Test 1"}; testObject.Created.ShouldEqual(DateTime.MinValue); repository.Add(testObject); testObject.Created.ShouldNotEqual(DateTime.MinValue); }
public void ExecuteFindAll_Should_Use_Cache_After_First_Call() { var repos = new InMemoryRepository <Contact>(new StandardCachingStrategy <Contact>()); repos.Add(new Contact { Name = "Test1" }); repos.Add(new Contact { Name = "Test2" }); var items = repos.FindAll(x => x.ContactId < 3); repos.CacheUsed.ShouldBeFalse(); items.Count().ShouldEqual(2); items = repos.FindAll(x => x.ContactId < 3); repos.CacheUsed.ShouldBeTrue(); items.Count().ShouldEqual(2); }
public static InMemoryRepository<Album> GetAlbumRepository(int numberOfAlbums = TestConstants.DefaultNumberOfModels) { var repo = new InMemoryRepository<Album>(); for (int i = 0; i < numberOfAlbums; i++) { repo.Add(GetValidAlbum(i)); } return repo; }
public void ThrowsIfNameInUse() { var repository = new InMemoryRepository(); repository.Add(new ChatUser() { Name = "taken" }); var service = new ChatService(new Mock<ICache>().Object, repository,new Mock<ICryptoService>().Object); Assert.Throws<InvalidOperationException>(() => service.AddUser("taken", clientId: null, userAgent: null, password: null)); }
public void ThrowsIfNameInUse() { var repository = new InMemoryRepository(); repository.Add(new ChatUser() { Name = "taken" }); var service = new ChatService(repository, new Mock <ICryptoService>().Object); Assert.Throws <InvalidOperationException>(() => service.AddUser("taken", clientId: null, userAgent: null, password: null)); }
public void ThrowsIfUserPasswordNotSet() { var repository = new InMemoryRepository(); repository.Add(new ChatUser { Name = "SomeUser" }); var service = new ChatService(repository, new Mock <ICryptoService>().Object); Assert.Throws <InvalidOperationException>(() => service.AuthenticateUser("SomeUser", "password")); }
public void Setup() { Repository = new InMemoryRepository <Company>(); MembershipService = new InMemoryMembershipService(); Sut = new IBSController(Repository); Repository.Add(new Company { Id = CompanyId, CompanyName = "Taxi Diamond" }); }
public void Cache_Should_Timeout() { var repository = new InMemoryRepository<Contact, int>(new TimeoutCachingStrategy<Contact, int>(2) { CachePrefix = "#RepoTimeoutCache" }); repository.Add(new Contact() { Name = "Test User" }); repository.Get(1); repository.CacheUsed.ShouldBeTrue(); Thread.Sleep(5000); repository.Get(1); repository.CacheUsed.ShouldBeFalse(); }
public void Join_GetAll_Should_Return_All_Items(IRepository<Contact, string> repository) { for (var i = 1; i <= 5; i++) { var contact = new Contact { Name = "Test User " + i, ContactTypeId = (i % 2) + 1}; repository.Add(contact); } var contactTypeRepository = new InMemoryRepository<ContactType, int>(); contactTypeRepository.Add(new ContactType() { ContactTypeId = 1, Abbreviation = "T1"}); contactTypeRepository.Add(new ContactType() { ContactTypeId = 2, Abbreviation = "T2" }); var compositeRepos = repository.Join(contactTypeRepository, c => c.ContactTypeId, ct => ct.ContactTypeId, (c, ct) => new { Id = c.ContactId, Name = c.Name, TypeAbbrev = ct.Abbreviation }); var all = compositeRepos.GetAll().ToList(); all.Count.ShouldEqual(5); //IEnumerable<Contact> result = repository.GetAll().ToList(); //result.Count().ShouldEqual(5); }
public void MakesUserAdmin() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var user = new ChatUser { Name = "foo2", IsAdmin = false }; repository.Add(admin); repository.Add(user); var service = new ChatService(new Mock<ICache>().Object, repository); service.AddAdmin(admin, user); Assert.True(user.IsAdmin); }
public void AddsNewMessageToRepository() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; repository.Add(user); var room = new ChatRoom { Name = "Room" }; repository.Add(room); room.Users.Add(user); user.Rooms.Add(room); var service = new ChatService(repository); ChatMessage message = service.AddMessage(user, room, "Content"); Assert.NotNull(message); Assert.Same(message, room.Messages.First()); Assert.Equal("Content", message.Content); }