public void Update_UpdatesObject() { //Arrange var orm = new OrMapper(); PostGreSqlDatabase db = new PostGreSqlDatabase(); Photographer p = GetPhotographer(); int id = db.Insert(p); p.Id = id; p.Name = "OtherName"; p.SurName = "OtherSurName"; //Act db.Update(p); //Assert var lst = orm.GetQuery <Photographer>().Where(i => i.Id == id).ToList(); Assert.NotNull(lst); Assert.IsAssignableFrom <List <Photographer> >(lst); Assert.Single(lst); Assert.Equal(p.Name, lst[0].Name); Assert.Equal(p.SurName, lst[0].SurName); //Cleanup p.Id = id; db.Delete(p); }
public void GetEnumerable_ReturnsIEnumerable_WithData() { //Arrange Mock <IDatabase> mock = new Mock <IDatabase>(); mock.Setup(foo => foo.Select <Camera>(It.IsAny <Expression>())) .Returns(new List <Camera>() { new Camera() { Id = 5 }, new Camera() { Id = 5 }, new Camera() { Id = 5 } }); OrMapper or = new OrMapper(mock.Object, new ChangeTracker()); var x = or.GetQuery <Camera>().Where(i => i.Id == 5); //Act var res = or.GetEnumerable <Camera>(x.Expression); //Assert Assert.NotNull(res); Assert.IsAssignableFrom <IEnumerable <Camera> >(res); foreach (var cam in res) { Assert.Equal(5, cam.Id); } }
public void SubmitChanges_CallsRightDBAndCTMethods() { //Arrange var changes = new List <ChangeTrackerEntry>(); changes.Add(new ChangeTrackerEntry(new Camera(), ChangeTrackerEntry.States.Added)); changes.Add(new ChangeTrackerEntry(new Camera(), ChangeTrackerEntry.States.Deleted)); changes.Add(new ChangeTrackerEntry(new Camera(), ChangeTrackerEntry.States.Modified)); var ct = new Mock <IChangeTracker>(); ct.Setup(foo => foo.DetectChanges()).Returns(changes).Verifiable("Was not Called"); ct.Setup(foo => foo.ComputeChanges()).Verifiable("Was not Called"); var db = new Mock <IDatabase>(); db.Setup(foo => foo.Delete(It.IsAny <object>())).Verifiable("Was not Called"); db.Setup(foo => foo.Update(It.IsAny <object>())).Verifiable("Was not Called"); db.Setup(foo => foo.Insert(It.IsAny <object>())).Returns(1).Verifiable("Was not Called"); OrMapper or = new OrMapper(db.Object, ct.Object); //Act or.SubmitChanges(); //Assert ct.Verify(foo => foo.DetectChanges(), Times.Once); ct.Verify(foo => foo.ComputeChanges(), Times.Once); db.Verify(foo => foo.Delete(It.IsAny <object>()), Times.Once); db.Verify(foo => foo.Update(It.IsAny <object>()), Times.Once); db.Verify(foo => foo.Insert(It.IsAny <object>()), Times.Once); }
public void GetQuery_ThrowsInvalidOperationException_OnNonTableType() { //Arrange OrMapper or = new OrMapper(new PostGreSqlDatabase(), new ChangeTracker()); //Act & Assert Assert.Throws <InvalidOperationException>(() => or.GetQuery <OrMapper>()); }
public void IsTypeATable_False_OnNonTableType() { //Arrange OrMapper or = new OrMapper(new PostGreSqlDatabase(), new ChangeTracker()); //Act & Assert Assert.False(or.IsTypeATable(new OrMapper().GetType())); }
public void IsTypeATable_True_OnTableType() { //Arrange OrMapper or = new OrMapper(new PostGreSqlDatabase(), new ChangeTracker()); //Act & Assert Assert.True(or.IsTypeATable(new Camera().GetType())); Assert.True(or.IsTypeATable(new Photographer().GetType())); Assert.True(or.IsTypeATable(new Picture().GetType())); }
public void GetQuery_ReturnsIQueryable() { //Arrange OrMapper or = new OrMapper(new PostGreSqlDatabase(), new ChangeTracker()); //Act var x = or.GetQuery <Camera>(); //Assert Assert.NotNull(x); Assert.IsAssignableFrom <IQueryable>(x); }
public void Delete_InsertsObjectIntoChangeTracker() { //Arrange var mock = new Mock <IChangeTracker>(); mock.Setup(foo => foo.Delete(It.IsAny <Camera>())).Verifiable("Was not Called"); OrMapper or = new OrMapper(new PostGreSqlDatabase(), mock.Object); //Act or.Delete(new Camera()); //Assert mock.Verify(foo => foo.Delete(It.IsAny <Camera>()), Times.Once); }
public void Select_ReturnsListGreaterOne() { //Arrange var qry = new OrMapper().GetQuery <Picture>(); var filtered = qry .Where(i => true); //Act var lst = filtered.ToList(); //Assert Assert.NotNull(lst); Assert.IsAssignableFrom <List <Picture> >(lst); Assert.True(1 < lst.Count); }
public void GetEnumerable_ThrowsInvalidOperationException_OnNonTableType() { //Arrange Mock <IDatabase> mock = new Mock <IDatabase>(); mock.Setup(foo => foo.Select <Camera>(It.IsAny <Expression>())) .Returns(new List <Camera>() { new Camera() { Id = 5 } }); OrMapper or = new OrMapper(mock.Object, new ChangeTracker()); var x = or.GetQuery <Camera>().Where(i => i.Id == 5); //Act & Assert Assert.Throws <InvalidOperationException>(() => or.GetEnumerable <OrMapper>(x.Expression)); }
public void Delete_DeletesObject() { //Arrange var orm = new OrMapper(); PostGreSqlDatabase db = new PostGreSqlDatabase(); Photographer p = GetPhotographer(); p.Id = db.Insert(p); int id = p.Id; //only because .where(... == p.Id cant be resolved by visitor and it writes photographer.id instead of 5 or 7 or whatever id is //Act db.Delete(p); //Assert Assert.NotNull(p); var lst = orm.GetQuery <Photographer>().Where(i => i.Id == id).ToList(); Assert.NotNull(lst); Assert.IsAssignableFrom <List <Photographer> >(lst); Assert.Empty(lst); }
public void Insert_InsertsObject_ReturnsID() { //Arrange var orm = new OrMapper(); PostGreSqlDatabase db = new PostGreSqlDatabase(); Photographer p = GetPhotographer(); //Act int id = db.Insert(p); //Assert Assert.NotNull(p); Assert.True(0 < id); var lst = orm.GetQuery <Photographer>().Where(i => i.Id == id).ToList(); Assert.NotNull(lst); Assert.IsAssignableFrom <List <Photographer> >(lst); Assert.Single(lst); //Cleanup p.Id = id; db.Delete(p); }