Advertisement
Guest User

dbcontext moq

a guest
Jan 18th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.59 KB | None | 0 0
  1.     public static class TestUtil
  2.     {
  3.         public static AppointmentSchedulerContext CreateMockContext()
  4.         {
  5.             var servicesList = new List<Service>
  6.                        {
  7.                            new Service {ServiceId = Guid.NewGuid(), Name = "Full Individual Return"},
  8.                            new Service {ServiceId = Guid.NewGuid(), Name = "Partial Individual Return"},
  9.                            new Service {ServiceId = Guid.NewGuid(), Name = "Exchange"},
  10.                        };
  11.  
  12.             var mockContext = new Mock<AppointmentSchedulerContext>();
  13.             mockContext.Setup(m => m.Services)
  14.                        .Returns(CreateMockDbSet(servicesList).Object);
  15.  
  16.             return mockContext.Object;
  17.         }
  18.  
  19.         private static Mock<DbSet<T>> CreateMockDbSet<T>(List<T> backingList) where T : class
  20.         {
  21.             var queryable = backingList.AsQueryable();
  22.  
  23.             var mockSet = new Mock<DbSet<T>>();
  24.             mockSet.As<IQueryable<T>>().Setup(m => m.Provider).Returns(queryable.Provider);
  25.             mockSet.As<IQueryable<T>>().Setup(m => m.Expression).Returns(queryable.Expression);
  26.             mockSet.As<IQueryable<T>>().Setup(m => m.ElementType).Returns(queryable.ElementType);
  27.             mockSet.As<IQueryable<T>>().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
  28.             mockSet.As<IDbSet<T>>()
  29.                    .Setup(m => m.Add(It.IsAny<T>()))
  30.                    .Returns((T item) => item)
  31.                    .Callback((T item) => backingList.Add(item));
  32.  
  33.             return mockSet;
  34.         }
  35.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement