public void Use_Raven_Db_Embedded_For_Tests() { var documentStore = new EmbeddableDocumentStore() { RunInMemory = true }; using (var repos = new RavenDbRepository <RavenTestStringKey>(documentStore)) { repos.Add(new RavenTestStringKey() { Name = "Jeff", Age = 33 }); repos.Add(new RavenTestStringKey() { Name = "Ben", Age = 53 }); // :) var items = repos.GetAll().ToList(); items.Count.ShouldEqual(2); var item2 = repos.Get("RavenTestStringKeys/2"); // is there a way we could allow them to just pass in 2 or the full string, or is that a bad idea item2.Name.ShouldEqual("Ben"); } }
public void Use_Raven_Db_Embedded_For_Tests_With_Custom_Int_Key() { var documentStore = new EmbeddableDocumentStore() { RunInMemory = true }; using (var repos = new RavenDbRepository <RavenTestCustomIntKey, int>(documentStore)) { repos.Add(new RavenTestCustomIntKey() { Name = "Jeff", Age = 33 }); repos.Add(new RavenTestCustomIntKey() { Name = "Ben", Age = 53 }); // :) var items = repos.GetAll().ToList(); items.Count.ShouldEqual(2); // this works but won't work if the primary key is [ClassName]Id instead of just Id var item1 = repos.Get(1); item1.Name.ShouldEqual("Jeff"); var item2 = repos.Get(2); item2.Name.ShouldEqual("Ben"); } }
public void ShouldCreateANoteAndAddTheDate() { // Arrange const string id = "id"; var today = DateTime.Now; var note = new Note { Id = id, Message = "Message" }; var categories = new[] { new Category { Name = "Important" } }; // Depedent-On Component var session = Substitute.For <IDocumentSession>(); // System under Test var repository = new RavenDbRepository(session); // Act repository.Create(note, categories); // Assert / Indirect Output session.Received().Store(Arg.Is <Note>(n => n.Id == id && n.Added.Date == today.Date)); session.Received().SaveChanges(); }
public void ShouldLoadAllCateogoriesIfNoIdsWereProvided() { // Arrange var category = new Category { Name = "Important" }; var expectedCategories = new List <Category> { category }; // Depedent-On Component var session = Substitute.For <IDocumentSession>(); var query = Substitute.For <IRavenQueryable <Category> >(); // Indirect Input session.Query <Category>().Returns(query); query.GetEnumerator().Returns(expectedCategories.GetEnumerator()); // System under Test var repository = new RavenDbRepository(session); // Act IEnumerable <Category> categories = repository.GetAllCategories(null); // Assert Assert.That(categories, Is.EquivalentTo(expectedCategories)); Assert.That(categories.First().Name, Is.EqualTo(category.Name)); }
public void ShouldLoadASubsetOfCategories() { // Arrange var ids = new[] { "id" }; var category = new Category { Name = "Important" }; var expectedCategories = new[] { category }; // Depedent-On Component var session = Substitute.For <IDocumentSession>(); // Indirect Input session.Load <Category>(ids).Returns(expectedCategories); // System under Test var repository = new RavenDbRepository(session); // Act IEnumerable <Category> categories = repository.GetAllCategories(ids); // Assert Assert.That(categories, Is.EquivalentTo(expectedCategories)); Assert.That(categories.First().Name, Is.EqualTo(category.Name)); }
public void ShouldReadAll() { // Arrange var note = new NoteWithCategories { Message = "Message" }; var expectedNotes = new List <NoteWithCategories> { note }; // Depedent-On Component var session = Substitute.For <IDocumentSession>(); var query = Substitute.For <IRavenQueryable <NoteWithCategories> >(); // Indirect Input session.Query <NoteWithCategories>().Returns(query); query.GetEnumerator().Returns(expectedNotes.GetEnumerator()); // System under Test var repository = new RavenDbRepository(session); // Act IEnumerable <NoteWithCategories> notes = repository.ReadAll(); // Assert Assert.That(notes, Is.EquivalentTo(expectedNotes)); Assert.That(notes.First().Message, Is.EqualTo(note.Message)); }
public void InitializeRavenDbTest() { RavenDbRepository repository = new RavenDbRepository(this.documentStoreMock.Mock.Object); repository.Dispose(); this.documentStoreMock.Mock.Verify(x => x.Initialize(), Times.Once); }
public static IRepository BuildRavenDbRepository(DocumentStore document) { var documentSession = document.Initialize().OpenSession(); var buildRavenDbRepository = new RavenDbRepository(/*Pleasure.MockStrictAsObject<IRavenDbSessionFactory>(mock => mock.Setup(r => r.GetCurrent()).Returns(documentSession))*/); buildRavenDbRepository.SetProvider(new Lazy <IDocumentSession>(() => documentSession)); return(buildRavenDbRepository); }
private static BlogQueryService GetBlogQueryService(IDocumentStore documentStore) { if (documentStore == null) { throw new ArgumentNullException(nameof(documentStore)); } var repository = new RavenDbRepository(DocumentStore); var blogQuery = new BlogQueryService(repository, BlogSettingsLazy.Value); return blogQuery; }
public void AddItemTest() { Item item = new Item("1", "Name"); this.documentStoreMock.DocumentSession.Mock.Setup(x => x.Store(item)); using (RavenDbRepository repository = new RavenDbRepository(this.documentStoreMock.Mock.Object)) { repository.Add(item); } this.documentStoreMock.DocumentSession.Mock.Verify(x => x.Store(item), Times.Once); }
private static BlogQueryService GetBlogQueryService(IDocumentStore documentStore) { if (documentStore == null) { throw new ArgumentNullException(nameof(documentStore)); } var repository = new RavenDbRepository(DocumentStore); var blogQuery = new BlogQueryService(repository, BlogSettingsLazy.Value); return(blogQuery); }
public void CreateTest() { var store = new EmbeddableDocumentStore(); store.Initialize(); using (var context = new RavenDbContext(store)) { var target = new RavenDbRepository<Foo>(context); var foo = new Foo { Bar = "Foo" }; target.Insert(foo); var actual = target.Single(p => p.Bar == "Foo"); Assert.IsNotNull(actual); } }
public void GetAllItems() { this.documentStoreMock.DocumentSession.Mock.Setup(x => x.Load<Item>()) .Returns(new Collection<Item>() { new Item("1", "Path"), new Item("2", "Path2") }.ToArray()); List<Item> items; using (RavenDbRepository repository = new RavenDbRepository(this.documentStoreMock.Mock.Object)) { items = repository.All<Item>().ToList(); } items[0].ExAssert(x => x.Member(m => m.Id).IsEqualTo("1").Member(m => m.Name).IsEqualTo("Path")); items[1].ExAssert(x => x.Member(m => m.Id).IsEqualTo("2").Member(m => m.Name).IsEqualTo("Path2")); this.documentStoreMock.DocumentSession.Mock.Verify(x => x.Load<Item>()); }
public void RavenDb_Throws_NotSupportedException_When_GenerateKeyOnAdd_Is_Set_False() { var ravenDbRepo = new RavenDbRepository <Contact>(); Exception actualException = null; try { ravenDbRepo.GenerateKeyOnAdd = false; } catch (Exception ex) { actualException = ex; } actualException.ShouldNotBeNull(); actualException.ShouldBeOfType <NotSupportedException>(); }
public void Use_Raven_Db_Embedded_For_Tests() { var documentStore = new EmbeddableDocumentStore() {RunInMemory = true}; using (var repos = new RavenDbRepository<RavenTestStringKey>(documentStore)) { repos.Add(new RavenTestStringKey() {Name = "Jeff", Age = 33}); repos.Add(new RavenTestStringKey() {Name = "Ben", Age = 53}); // :) var items = repos.GetAll().ToList(); items.Count.ShouldEqual(2); var item2 = repos.Get("RavenTestStringKeys/2"); // is there a way we could allow them to just pass in 2 or the full string, or is that a bad idea item2.Name.ShouldEqual("Ben"); } }
public void Use_Raven_Db_Embedded_For_Tests_With_Int_Key() { var documentStore = new EmbeddableDocumentStore() { RunInMemory = true }; using (var repos = new RavenDbRepository<RavenTestIntKey, int>(documentStore)) { repos.Add(new RavenTestIntKey() {Name = "Jeff", Age = 33}); repos.Add(new RavenTestIntKey() {Name = "Ben", Age = 53}); // :) var items = repos.GetAll().ToList(); items.Count.ShouldEqual(2); // this works but won't work if the primary key is [ClassName]Id instead of just Id var item1 = repos.Get(1); item1.Name.ShouldEqual("Jeff"); var item2 = repos.Get(2); item2.Name.ShouldEqual("Ben"); } }
public void ShouldUpdateANote() { // Arrange const string id = "123"; var note = new Note { Id = id, Message = "Message" }; var categories = new[] { new Category { Name = "Important" } }; // Depedent-On Component var session = Substitute.For <IDocumentSession>(); // System under Test var repository = new RavenDbRepository(session); repository.Update(note, categories); // Assert / Indirect Output session.Received().Store(Arg.Is <Note>(n => n.Id == id)); session.Received().SaveChanges(); }
public void ShouldDeleteANote() { // Arrange const string id = "id"; var note = new NoteWithCategories { Id = id, Message = "Message" }; // Depedent-On Component var session = Substitute.For <IDocumentSession>(); session.Load <NoteWithCategories>(id).Returns(note); // System under Test var repository = new RavenDbRepository(session); // Act repository.Delete(id); // Assert / Indirect Output session.Received().Delete(Arg.Is(note)); session.Received().SaveChanges(); }
public void ShouldReadOne() { // Arrange const string id = "Id"; var expectedNote = new NoteWithCategories { Id = id, Message = "Message" }; // Depedent-On Component var session = Substitute.For <IDocumentSession>(); // Indirect Input session.Load <NoteWithCategories>(Arg.Is(id)).Returns(expectedNote); // System under Test var repository = new RavenDbRepository(session); // Act NoteWithCategories note = repository.Read(id); // Assert Assert.That(note.Message, Is.EqualTo(note.Message)); }
protected static IRepository GetRepository() { var docSession = new DocumentStore { Url = "http://localhost:8080/", DefaultDatabase = "IncTest", }; docSession.Conventions.AllowQueriesOnId = true; docSession.Conventions.MaxNumberOfRequestsPerSession = 1000; docSession.Initialize(); docSession.RegisterListener(new NoStaleQueriesListener()); var session = docSession.OpenSession(); var ravenDbRepository = new RavenDbRepository(/*Pleasure.MockAsObject<IRavenDbSessionFactory>(mock => * { * * //mock.Setup(r => r.GetCurrent()).Returns(session); * })*/); ravenDbRepository.SetProvider(new Lazy <IDocumentSession>(() => session)); return(ravenDbRepository); }
protected override IRepository GetRepository( IEnumerable<BlogMeta> blogMetas = null, IEnumerable<BlogPost> blogPosts = null) { var documentStore = EmbeddableDocumentStoreTestFactory.CreateWithData(blogMetas: blogMetas, blogPosts: blogPosts); var repository = new RavenDbRepository(documentStore); return repository; }