public GlossaryTermTest() { // create some mock to play with List <GlossaryTerm> terms = new List <GlossaryTerm> { new GlossaryTerm { GlossaryTermId = Guid.NewGuid(), Term = "Term1", Defination = "Defination1", CreatedDate = DateTime.Now }, new GlossaryTerm { GlossaryTermId = Guid.NewGuid(), Term = "Term2", Defination = "Defination2", CreatedDate = DateTime.Now }, new GlossaryTerm { GlossaryTermId = Guid.NewGuid(), Term = "Term3", Defination = "Defination3", CreatedDate = DateTime.Now }, new GlossaryTerm { GlossaryTermId = Guid.NewGuid(), Term = "Term4", Defination = "Defination4", CreatedDate = DateTime.Now } }; // Mock the Repository using Moq Mock <IGloassaryTermRepository> mockRepositoy = new Mock <IGloassaryTermRepository>(); // Return all the terms mockRepositoy.Setup(mr => mr.GetAll()).Returns(terms.AsQueryable()); // return a term by Id mockRepositoy.Setup(mr => mr.GetById( It.IsAny <Guid>())).Returns((Guid i) => terms.Where( x => x.GlossaryTermId == i).Single()); // add term mockRepositoy.Setup(mr => mr.Add(It.IsAny <GlossaryTerm>())).Callback( (GlossaryTerm target) => { DateTime now = DateTime.Now; target.CreatedDate = now; target.GlossaryTermId = Guid.NewGuid(); terms.Add(target); }).Verifiable(); // delete term mockRepositoy.Setup(mr => mr.Delete(It.IsAny <GlossaryTerm>())).Callback( (GlossaryTerm target) => { terms.Remove(target); }).Verifiable(); // add term mockRepositoy.Setup(mr => mr.Update(It.IsAny <GlossaryTerm>())).Callback( (GlossaryTerm target) => { var item = terms.Where(t => t.GlossaryTermId == target.GlossaryTermId).FirstOrDefault(); terms.Remove(target); terms.Add(target); }).Verifiable(); // Complete the setup of our Mock Product Repository this.repository = mockRepositoy.Object; }
public GlossaryTermController(IGloassaryTermRepository repo) { _repository = repo; }