public void ShouldModifyTheQueryInExpressionToHaveAnAdditionalWhere()
        {
            //Arrange
            var domain      = new TestDomain();
            var interceptor = new AppendWhere <Foo>(1, foo => foo.Name == "Test", typeof(AllFoos));

            domain.Events = new List <IInterceptor>
            {
                interceptor
            };
            domain.ConnectionString = Settings.Default.Connection;

            //act
            var inMemoryDomainContext = new InMemoryDomainContext <TestDomain>();

            inMemoryDomainContext.Add(new Foo()
            {
                Name = "Test"
            });
            inMemoryDomainContext.Add(new Foo()
            {
                Name = "Should Not Show up"
            });
            inMemoryDomainContext.Commit();
            var repository = new DomainRepository <TestDomain>(inMemoryDomainContext, domain);
            var emptyQuery = new AllFoos();
            var results    = repository.Find(emptyQuery);

            //assert
            results.Count().Should().Be(1);
        }
Exemple #2
0
        public void Site_should_create_new_record()
        {
            var sites = new List <Site>()
            {
                new Site(new TenantId("abc"), "abc", "abc", true),
                new Site(new TenantId("abc"), "def", "def", true),
            }.AsQueryable();


            var expected = new Collection <Site>
            {
                new Site(new TenantId("abc"), "abc", "abc", true),
                new Site(new TenantId("abc"), "def", "def", true),
            };

            var actual = new Collection <Site>();

            var mockSet = new Mock <DbSet <Site> >();


            mockSet.Setup(r => r.Add(It.IsAny <Site>()))
            // 在Callback函数里把SavePatient的入参添加到actual列表中
            .Callback <Site>(p => actual.Add(p));

            mockSet.As <IQueryable <Site> >()
            .Setup(m => m.Provider)
            .Returns(sites.Provider);

            mockSet.As <IQueryable <Site> >().Setup(m => m.Expression).Returns(sites.Expression);
            mockSet.As <IQueryable <Site> >().Setup(m => m.ElementType).Returns(sites.ElementType);
            mockSet.As <IQueryable <Site> >().Setup(m => m.GetEnumerator()).Returns(() => sites.GetEnumerator());

            var mockContext = new Mock <BusinessDbContext>();

            mockContext.Setup(c => c.Set <Site>()).Returns(mockSet.Object);

            var entityRepository = new DomainRepository <Site>(mockContext.Object);


            var result = entityRepository.Find(Guid.NewGuid());

            Assert.Null(result);

            entityRepository.Add(new Site(new TenantId("abc"), "abc", "abc", true));
            entityRepository.Add(new Site(new TenantId("abc"), "def", "def", true));
            entityRepository.SaveChanges();

            // Assert
            Assert.Equal(expected.Count(), actual.Count());
        }
Exemple #3
0
        public void Site_should_save_new_record()
        {
            var entityRepository = new DomainRepository <Site>(dbContext);
            var site             = new Site(new TenantId("abc"), "def", "def", true);

            entityRepository.Add(site);
            dbContext.Entry(site).State = EntityState.Added;
            entityRepository.SaveChanges();

            var result = entityRepository.Find(site.Id);

            Assert.NotNull(result);

            Assert.Equal("def", result.Name);
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            ISiteRepository   repository;
            BusinessDbContext dbContext;

            var optionsBuilder = new DbContextOptionsBuilder <BusinessDbContext>();

            optionsBuilder.UseMySql("Server=localhost;database=book2site;uid=root;pwd=P@ssword;charset=utf8;port=3306;SslMode=None");

            dbContext  = new BusinessDbContext(optionsBuilder.Options);
            repository = new SiteRepository(dbContext);

            var entityRepository = new DomainRepository <Site>(dbContext);
            var site             = new Site(new TenantId("abc"), "def", "def", true);

            entityRepository.Add(site);
            entityRepository.SaveChanges();

            var result = entityRepository.Find(site.Id);
        }