コード例 #1
0
        public void Delete_Loop_With_Cache_And_Ef()
        {
            var cachingStrategy = new StandardCachingStrategy <Contact, string>();
            var dbPath          = EfDataDirectoryFactory.Build();

            Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");

            var repository = new EfRepository <Contact, string>(new TestObjectEntities("Data Source=" + dbPath), cachingStrategy);

            repository.Add(new Contact()
            {
                ContactId = "1", Name = "Contact1", ContactTypeId = 1
            });
            repository.Add(new Contact()
            {
                ContactId = "2", Name = "Contact2", ContactTypeId = 2
            });
            repository.Add(new Contact()
            {
                ContactId = "3", Name = "Contact3", ContactTypeId = 2
            });
            repository.FindAll(x => x.ContactTypeId == 2);

            repository = new EfRepository <Contact, string>(new TestObjectEntities("Data Source=" + dbPath), cachingStrategy);

            repository.Delete(x => x.ContactTypeId == 2);
        }
コード例 #2
0
ファイル: FirmService.cs プロジェクト: abanoubmilad/core-api
        public async Task <ServiceResponse <FirmDto> > AddAsync(ClaimsPrincipal claims, FirmDto request)
        {
            var response = new ServiceResponse <FirmDto>();

            var user = await _userManager.FindByIdAsync(claims.GetUserId());

            var firm     = _mapper.Map <Firm>(request);
            var firmUser = new FirmUser()
            {
                Firm       = firm,
                User       = user,
                Permission = Permission.Manage
            };


            _repository.Add(firm);
            _repository.Add(firmUser);

            var result = await _repository.CommitAsnyc();

            if (result == 0)
            {
                response.FailOperation();
                return(response);
            }
            response.Data = _mapper.Map <FirmDto>(firm);


            return(response);
        }
コード例 #3
0
        //[SetUp]
        public void SetUp(int record)
        {
            _db = new EntityMapperDbContext();
            var testData = _db.TestDatas.Take(record).ToList();

            _authAdapter    = new IdentityAuthAdapter();
            _sourceIds      = new List <int>();
            _destinationIds = new List <int>();

            var domainCrud = new EfRepository <Domain>(_db, _authAdapter);
            var domain     = domainCrud.Add(new Domain
            {
                Name   = "Fruit",
                Active = true
            });



            var systemCrud   = new EfRepository <global::Data.Models.System>(_db, _authAdapter);
            var sourceSystem = systemCrud.Add(new global::Data.Models.System
            {
                Domain = domain,
                Name   = "QualityControl",
                Active = true
            });

            var destinationSystem = systemCrud.Add(new global::Data.Models.System
            {
                Domain = domain,
                Name   = "Labour",
                Active = true
            });

            _sourceSystemId      = sourceSystem.Id;
            _destinationSystemId = destinationSystem.Id;
            foreach (var source in testData.Select(t => t.Source))
            {
                var entityCrud = new EfRepository <Entity>(_db, _authAdapter);
                var entity     = entityCrud.Add(new Entity
                {
                    SystemId = _sourceSystemId,
                    Name     = source.Trim(),
                    Active   = true
                });
                _sourceIds.Add(entity.Id);
            }
            foreach (var destination in testData.Select(t => t.Destination))
            {
                var entityCrud = new EfRepository <Entity>(_db, _authAdapter);
                var entity     = entityCrud.Add(new Entity
                {
                    SystemId = _destinationSystemId,
                    Name     = destination.Trim(),
                    Active   = true
                });
                _destinationIds.Add(entity.Id);
            }
        }
コード例 #4
0
        public void Setup()
        {
            //Prefill
            _authAdapter = new IdentityAuthAdapter();
            _db          = new EntityMapperDbContext();

            var domainCrud = new EfRepository <Domain>(_db, _authAdapter);
            var domain     = domainCrud.Add(new Domain
            {
                Name   = "Fruit",
                Active = true
            });



            var systemCrud   = new EfRepository <global::Data.Models.System>(_db, _authAdapter);
            var sourceSystem = systemCrud.Add(new global::Data.Models.System
            {
                Domain = domain,
                Name   = "Export",
                Active = true
            });

            var destinationSystem = systemCrud.Add(new global::Data.Models.System
            {
                Domain = domain,
                Name   = "Import",
                Active = true
            });

            _sourceSystemId      = sourceSystem.Id;
            _destinationSystemId = destinationSystem.Id;



            var entityCrud = new EfRepository <Entity>(_db, _authAdapter);

            entityCrud.Add(new Entity
            {
                SystemId = _sourceSystemId,
                Name     = "Commodity",
                Active   = true
            });

            entityCrud.Add(new Entity
            {
                SystemId = _destinationSystemId,
                Name     = "commodity",
                Active   = true
            });
        }
コード例 #5
0
 public void AddEntities(int record, List <long> times)
 {
     SetUp(record);
     try
     {
         var timer = new Stopwatch();
         timer.Start();
         var entityMappingCrud = new EfRepository <EntityMapping>(_db, _authAdapter);
         for (var i = 0; i < _sourceIds.Count; i++)
         {
             entityMappingCrud.Add(new EntityMapping
             {
                 MappingOriginId = 1,
                 SourceId        = _sourceIds[i],
                 DestinationId   = _destinationIds[i],
                 Confirmed       = false
             });
         }
         timer.Stop();
         times.Add(timer.ElapsedMilliseconds);
         var mappings = _db.EntityMappings.Take(record).ToList();
         Assert.AreEqual(record, mappings.Count);
     }
     catch (Exception)
     {
     }
     TearDown();
 }
コード例 #6
0
        public void Add_ShouldThrowArgumentNullException_WhenPassedEntityIsNull()
        {
            // Arrange
            var posts = new List <Post>
            {
                new Post()
                {
                    Id = 1, Title = "post", Content = "content"
                },
                new Post()
                {
                    Id = 2, Title = "post", Content = "content"
                }
            };

            var mockedDbContext = new Mock <MsSqlDbContext>();
            var mockedPostSet   = QueryableDbSetMock.GetQueryableMockDbSet <Post>(posts);

            mockedDbContext.Setup(c => c.Set <Post>()).Returns(mockedPostSet);
            mockedDbContext.Setup(c => c.Posts).Returns(mockedPostSet);
            string expectedExceptionMessage = "entity";

            var repositoryUnderTest = new EfRepository <Post>(mockedDbContext.Object);

            // Act & Assert
            var exc = Assert.Throws <ArgumentNullException>(() => repositoryUnderTest.Add(null));

            // Assert
            StringAssert.Contains(expectedExceptionMessage, exc.Message);
        }
コード例 #7
0
        public void RepoAdd_Adds()
        {
            // Arrange
            var stubDateProvider = new Mock <IRepoTimeProvider>();
            var options          = new DbContextOptionsBuilder <ITestDbContext>()
                                   .UseInMemoryDatabase(databaseName: "RepoAdd_Adds")
                                   .Options;
            var stubContext   = new ITestDbContext(options);
            var stubRepo      = new EfRepository <Answer>(stubContext, stubDateProvider.Object);
            var expectedCount = 1;
            var answer        = new Answer()
            {
                Content = "MitkoTheEyes"
            };

            stubRepo.Add(answer);

            stubContext.SaveChanges();

            //act
            var foundAnswers = stubRepo.All;

            //assert
            Assert.AreEqual(expectedCount, foundAnswers.Count());
        }
コード例 #8
0
        public void Delete_SetsCorrectDateTime()
        {
            // Arrange
            var stubDateProvider = new Mock <IRepoTimeProvider>();
            var someDate         = new DateTime(2017, 1, 18);

            stubDateProvider.Setup(x => x.GetDateTimeNow()).Returns(someDate);
            var options = new DbContextOptionsBuilder <ITestDbContext>()
                          .UseInMemoryDatabase(databaseName: "Delete_SetsCorrectDateTime")
                          .Options;
            var stubContext        = new ITestDbContext(options);
            var stubRepo           = new EfRepository <Answer>(stubContext, stubDateProvider.Object);
            var answerToBeDeteletd = new Answer()
            {
                Content = "ChefichaCold"
            };

            //act
            stubRepo.Add(answerToBeDeteletd);
            stubContext.SaveChanges();
            stubRepo.Delete(answerToBeDeteletd);
            stubContext.SaveChanges();
            var foundDeletedAnswer = stubRepo.AllAndDeleted.First();

            //assert
            Assert.AreEqual(someDate, foundDeletedAnswer.DeletedOn);
        }
コード例 #9
0
        public void Delete_RemovesEntityFromRepoAll()
        {
            // Arrange
            var stubDateProvider = new Mock <IRepoTimeProvider>();

            stubDateProvider.Setup(x => x.GetDateTimeNow()).Returns(new DateTime(2017, 1, 18));
            var options = new DbContextOptionsBuilder <ITestDbContext>()
                          .UseInMemoryDatabase(databaseName: "Delete_RemovesEntityFromRepoAll")
                          .Options;
            var stubContext        = new ITestDbContext(options);
            var stubRepo           = new EfRepository <Answer>(stubContext, stubDateProvider.Object);
            var answerToBeDeteletd = new Answer()
            {
                Content = "MitkoTheBoss"
            };

            //act
            stubRepo.Add(answerToBeDeteletd);
            stubContext.SaveChanges();
            stubRepo.Delete(answerToBeDeteletd);
            stubContext.SaveChanges();

            //assert
            Assert.AreEqual(0, stubRepo.All.Count());
            Assert.AreEqual(1, stubRepo.AllAndDeleted.Count());
        }
コード例 #10
0
        public void Update_UpdatesPropertiesCorrect()
        {
            // Arrange
            var stubDateProvider = new Mock <IRepoTimeProvider>();

            stubDateProvider.Setup(x => x.GetDateTimeNow()).Returns(new DateTime(2017, 1, 18));
            var options = new DbContextOptionsBuilder <ITestDbContext>()
                          .UseInMemoryDatabase(databaseName: "Update_UpdatesPropertiesCorrect")
                          .Options;
            var stubContext       = new ITestDbContext(options);
            var stubRepo          = new EfRepository <Answer>(stubContext, stubDateProvider.Object);
            var answerToBeUpdated = new Answer()
            {
                Correct = false, Content = "Petko"
            };

            //act
            stubRepo.Add(answerToBeUpdated);
            stubContext.SaveChanges();

            answerToBeUpdated.Correct = true;
            answerToBeUpdated.Content = "MartoStamatov";
            stubRepo.Update(answerToBeUpdated);

            //assert
            Assert.AreEqual(true, stubRepo.All.First().Correct);
            Assert.AreEqual("MartoStamatov", stubRepo.All.First().Content);
        }
コード例 #11
0
        public void DoesNewAddedMovieReallyExistInDb()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <MoviesDbContext>()
                          .UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=MovieContext;Trusted_Connection=True;MultipleActiveResultSets=true")
                          .Options;

            var movieToAdd = new Movie()
            {
                Title       = "asd",
                Runtime     = 1997,
                Year        = 2000,
                PosterPath  = null,
                Description = "Desc",
                Reviews     = new List <Review>()
            };

            var context = new MoviesDbContext(options);
            var last    = context.Movies.ToList().Last();
            var repo    = new EfRepository(context);

            //Act
            repo.Add(movieToAdd);


            //context.Add(movieToAdd);
            //context.SaveChanges();

            //Assert
            Assert.Equal(1997, last.Runtime);
        }
コード例 #12
0
        public void TestMovieUpdate()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <MoviesDbContext>().EnableSensitiveDataLogging()
                          .UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=MovieContext;Trusted_Connection=True;MultipleActiveResultSets=true")
                          .Options;

            var movie = new Movie()
            {
                Title       = "movieToEdit",
                Runtime     = 1997,
                Year        = 2000,
                PosterPath  = null,
                Description = "Desc"
            };

            var context = new MoviesDbContext(options);
            var repo    = new EfRepository(context);

            //Act
            repo.Add(movie);

            movie.Title = "edited";
            repo.Update <Movie>(movie);

            //Assert
            Assert.Equal("edited", movie.Title);
        }
コード例 #13
0
        public void Delete_Loop_With_Cache_And_Ef()
        {
            var cachingStrategy = new StandardCachingStrategy<Contact, string>();
            var dbPath = EfDataDirectoryFactory.Build();
            Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");

            var repository = new EfRepository<Contact, string>(new TestObjectEntities("Data Source=" + dbPath), cachingStrategy);

            repository.Add(new Contact() { ContactId = "1", Name = "Contact1", ContactTypeId = 1});
            repository.Add(new Contact() { ContactId = "2", Name = "Contact2", ContactTypeId = 2});
            repository.Add(new Contact() { ContactId = "3", Name = "Contact3", ContactTypeId = 2});
            repository.FindAll(x => x.ContactTypeId == 2);

            repository = new EfRepository<Contact, string>(new TestObjectEntities("Data Source=" + dbPath), cachingStrategy);

            repository.Delete(x => x.ContactTypeId == 2);
        }
コード例 #14
0
 public void MoveAll()
 {
     IRepository<SqlVendor> repo = new EfRepository<SqlVendor>();
     repo.Add(new SqlVendor()
     {
         Name = "Corsair"
     });
     repo.SaveChanges();
 }
コード例 #15
0
        public int Add(Product p)
        {
            _repository.Add <Product>(p);
            _repository.SaveChanges();

            var result = p.Reference;

            return(result);
        }
コード例 #16
0
        public void Deleted_Entity_With_Nullable_PartitionKey_Should_Not_Be_Returned_From_Cache()
        {
            var dbPath = EfDataDirectoryFactory.Build();

            Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");

            // Standard partition cache and expression.
            var strategy = new StandardCachingStrategyWithPartition <Node, int, int?>(new InMemoryCachingProvider(),
                                                                                      n => n.ParentId);

            // Standard EF repo.
            IRepository <Node, int> repository =
                new EfRepository <Node, int>(new TestObjectEntities("Data Source=" + dbPath), strategy);

            // Create a root node (ParentId = null).
            var rootNode = new Node()
            {
                ParentId = null, Name = "Root"
            };

            repository.Add(rootNode);

            // Note: If we dont assign an int? here then TryPartitionValue in StandardCachingStrategyBase cannot find the partition key in the expression
            // because there would be a cast made in the expression which breaks partition key discovery.
            int?rootNodeId = rootNode.Id;

            // Create a child node referencing the root node as it's parent.
            var childNode = new Node()
            {
                ParentId = rootNodeId, Name = "Child"
            };

            repository.Add(childNode);

            // Find the child nodes via the parentId, this will cause the cache to store the child node.
            repository.FindAll(n => n.ParentId == rootNodeId).Count().ShouldEqual(1);

            // Deleting the child node should also increment the partition generation.
            repository.Delete(childNode);

            // Subsequent query should not return the child node.
            repository.FindAll(n => n.ParentId == rootNodeId).Count().ShouldEqual(0, "Deleted entity returned from cache.");
        }
コード例 #17
0
        public void Call_AddMethod_Twice_OfTheDbSet()
        {
            // Arrange
            var characterDataModel = new CharacterDataModel();

            var mockedDbSet     = new Mock <IDbSet <CharacterDataModel> >();
            var mockedDbContext = new Mock <IEfMarvelCatalogDbContext>();

            mockedDbContext.Setup(db => db.GetSet <CharacterDataModel>()).Returns(mockedDbSet.Object);
            mockedDbSet.Setup(set => set.Add(characterDataModel));

            var repo = new EfRepository <CharacterDataModel>(mockedDbContext.Object);

            // Act
            repo.Add(characterDataModel);
            repo.Add(characterDataModel);

            // Assert
            mockedDbSet.Verify(set => set.Add(characterDataModel), Times.Exactly(2));
        }
コード例 #18
0
        public void Add_Should_Save_And_Assign_1_To_Ef_Int_Id_When_GenerateKeyOnAdd_Is_False()
        {
            var dbPath     = EfDataDirectoryFactory.Build();
            var repository = new EfRepository <ContactInt, int>(new TestObjectEntities("Data Source=" + dbPath));
            var contact    = new ContactInt {
                Name = "Test User"
            };

            repository.GenerateKeyOnAdd = false;
            repository.Add(contact);
            contact.ContactIntId.ShouldEqual(1);
        }
コード例 #19
0
        public void CompoundKeyRepository_Should_Work()
        {
            var dbPath = EfDataDirectoryFactory.Build();
            ICompoundKeyRepository <User, string, int> repository = new EfRepository <User, string, int>(new TestObjectContext("Data Source=" + dbPath));

            repository.Add(new User {
                Username = "******", Age = 21, FullName = "Jeff - 21"
            });
            repository.Add(new User {
                Username = "******", Age = 31, FullName = "Jeff - 31"
            });
            repository.Add(new User {
                Username = "******", Age = 41, FullName = "Jeff - 41"
            });

            repository.Add(new User {
                Username = "******", Age = 31, FullName = "Ben - 31"
            });
            repository.Add(new User {
                Username = "******", Age = 41, FullName = "Ben - 41"
            });
            repository.Add(new User {
                Username = "******", Age = 51, FullName = "Ben - 51"
            });

            repository.Get("jeff", 31).FullName.ShouldBe("Jeff - 31");
            repository.Get("ben", 31).FullName.ShouldBe("Ben - 31");
            repository.Get("jeff", 41).FullName.ShouldBe("Jeff - 41");

            repository.FindAll(x => x.Age == 31).Count().ShouldBe(2);
        }
コード例 #20
0
        public void CompoundKeyRepository_Should_Work()
        {
            var dbPath = EfDataDirectoryFactory.Build();

            Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
            ICompoundKeyRepository <User, string, int> repository = new EfRepository <User, string, int>(new TestObjectEntities("Data Source=" + dbPath));

            repository.Add(new User {
                Username = "******", Age = 21, FullName = "Jeff - 21"
            });
            repository.Add(new User {
                Username = "******", Age = 31, FullName = "Jeff - 31"
            });
            repository.Add(new User {
                Username = "******", Age = 41, FullName = "Jeff - 41"
            });

            repository.Add(new User {
                Username = "******", Age = 31, FullName = "Ben - 31"
            });
            repository.Add(new User {
                Username = "******", Age = 41, FullName = "Ben - 41"
            });
            repository.Add(new User {
                Username = "******", Age = 51, FullName = "Ben - 51"
            });

            repository.Get("jeff", 31).FullName.ShouldEqual("Jeff - 31");
            repository.Get("ben", 31).FullName.ShouldEqual("Ben - 31");
            repository.Get("jeff", 41).FullName.ShouldEqual("Jeff - 41");

            repository.FindAll(x => x.Age == 31).Count().ShouldEqual(2);
        }
コード例 #21
0
        public void TestMovieDelete()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <MoviesDbContext>()
                          .UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=MovieContext;Trusted_Connection=True;MultipleActiveResultSets=true")
                          .Options;

            var movieToAdd = new Movie()
            {
                Title       = "beforeLast",
                Runtime     = 1997,
                Year        = 2000,
                PosterPath  = null,
                Description = "Desc"
            };

            var movieToDelete = new Movie()
            {
                Title       = "lastToDelete",
                Runtime     = 1997,
                Year        = 2000,
                PosterPath  = null,
                Description = "Desc"
            };



            var context = new MoviesDbContext(options);
            var repo    = new EfRepository(context);

            //Act
            repo.Add(movieToAdd);
            repo.Add(movieToDelete);

            repo.Delete(movieToDelete);
            var last = context.Movies.ToList().Last();

            //Assert
            Assert.Equal(movieToAdd.Title, last.Title);
        }
コード例 #22
0
        public void RentalExpiredTest()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <MoviesDbContext>()
                          .UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=MovieContext;Trusted_Connection=True;MultipleActiveResultSets=true")
                          .Options;
            var context = new MoviesDbContext(options);
            var repo    = new EfRepository(context);


            //Act
            var movie = new Movie()
            {
                Price = 3.99M
            };

            repo.Add <Movie>(movie);


            var payment = new Payment()
            {
                Price = movie.Price
            };

            repo.Add <Payment>(payment);
            var rental = new Rental();

            rental.SetStartDate();
            rental.SetEndDate(DateTime.Now.AddSeconds(2));
            rental.SetPayment(payment);
            rental.SetMovieId(movie.Id);
            repo.Add <Rental>(rental);

            Thread.Sleep(3000);

            //Assert
            Assert.False(rental.IsRentalValid());
        }
コード例 #23
0
        public void Delete_With_Cache_And_Ef()
        {
            var cachingStrategy = new StandardCachingStrategy<Contact, string>();
            var dbPath = EfDataDirectoryFactory.Build();
            Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");

            var repository = new EfRepository<Contact, string>(new TestObjectEntities("Data Source=" + dbPath), cachingStrategy);

            repository.Add(new Contact() { ContactId = "1", Name = "Contact1"});

            repository = new EfRepository<Contact, string>(new TestObjectEntities("Data Source=" + dbPath), cachingStrategy);
            repository.Get("1");
            repository.CacheUsed.ShouldBeTrue();
            repository.Delete("1");
        }
コード例 #24
0
        public void ThrowNullReferenceException_WhenPassedArgumentIsNull()
        {
            // Arrange
            var mockedDbContext = new Mock <MsSqlDbContext>();
            var mockedSet       = new Mock <DbSet <Book> >();

            // Act
            mockedDbContext.Setup(set => set.Set <Book>()).Returns(mockedSet.Object);
            var  mockedDbSet = new EfRepository <Book>(mockedDbContext.Object);
            Book entity      = null;

            // Assert
            Assert.That(() => mockedDbSet.Add(entity),
                        Throws.InstanceOf <ArgumentNullException>());
        }
コード例 #25
0
ファイル: AddTests.cs プロジェクト: cwetanow/SchoolSystem
        public void TestAdd_ShouldCallDbContextSetAdded()
        {
            // Arrange
            var mockedDbContext = new Mock <IDbContext>();

            var repository = new EfRepository <FakeRepositoryType>(mockedDbContext.Object);

            var entity = new Mock <FakeRepositoryType>();

            // Act
            repository.Add(entity.Object);

            // Assert
            mockedDbContext.Verify(c => c.SetAdded(entity.Object), Times.Once);
        }
コード例 #26
0
        public void ThrowArgumentNullException_WhenArgumentIsNull()
        {
            //Arrange
            var mockedDbContext = new Mock <MsSqlDbContext>();
            var mockedModel     = new Mock <DbSet <Category> >();
            var mockedCategory  = new Mock <Category>();

            //Act
            mockedDbContext.Setup(x => x.Set <Category>()).Returns(mockedModel.Object);
            var      mockedDbSet = new EfRepository <Category>(mockedDbContext.Object);
            Category entity      = null;

            //Assert
            Assert.Throws <ArgumentNullException>(() => mockedDbSet.Add(entity));
        }
コード例 #27
0
        public void Add_save_a_todo_via_context()
        {
            // Arrange
            var mockDispatcher = new Mock <IDomainEventDispatcher>();
            var mockSet        = new Mock <DbSet <ToDoItem> >();
            var mockContext    = new Mock <AppDbContext>(mockDispatcher.Object);

            mockContext.Setup(x => x.Set <ToDoItem>()).Returns(mockSet.Object);
            var repository = new EfRepository <ToDoItem>(mockContext.Object);

            // Act
            repository.Add(new ToDoItem());

            // Assert
            mockSet.Verify(x => x.Add(It.IsAny <ToDoItem>()), Times.Once());
            mockContext.Verify(x => x.SaveChanges(), Times.Once());
        }
コード例 #28
0
        public void Delete_With_Cache_And_Ef()
        {
            var cachingStrategy = new StandardCachingStrategy <Contact, string>();
            var dbPath          = EfDataDirectoryFactory.Build();

            var repository = new EfRepository <Contact, string>(new TestObjectEntities("Data Source=" + dbPath), cachingStrategy);

            repository.Add(new Contact()
            {
                ContactId = "1", Name = "Contact1"
            });

            repository = new EfRepository <Contact, string>(new TestObjectEntities("Data Source=" + dbPath), cachingStrategy);
            repository.Get("1");
            repository.CacheUsed.ShouldBeTrue();
            repository.Delete("1");
        }
コード例 #29
0
        public void EfRepo_Should_Call_Add()
        {
            //Arrange
            FakeClass fake        = new FakeClass();
            var       mockedDbSet = new Mock <IDbSet <FakeClass> >();

            mockedDbSet.Setup(x => x.Add(fake)).Verifiable();
            var mockedDbContext = new Mock <IEfSociumDbContext>();

            mockedDbContext.Setup(c => c.GetDbSet <FakeClass>()).Returns(mockedDbSet.Object);
            EfRepository <FakeClass> repo = new EfRepository <FakeClass>(mockedDbContext.Object);

            //Act
            repo.Add(fake);

            //Assert
            mockedDbSet.Verify(x => x.Add(fake), Times.Once);
        }
コード例 #30
0
ファイル: Startup.cs プロジェクト: tathaibinh/Databases
        public static void Main()
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion <ArtistsDBContext, Configuration>());

            //IArtistsDBContext db = new ArtistsDBContext();

            //db.Album.Add(new Album());

            //позволява да изпълним команда
            //db.Database.ExecuteSqlCommand();

            //рядко се ползва
            //db.Configuration.LazyLoadingEnabled = false;
            //db.Configuration.ValidateOnSaveEnabled = false;

            /*
             * var artist = new Artist
             * {
             *  Name = "Tosho",
             *  Gender = GenderType.Male
             * };
             *
             * db.Artists.Add(artist);
             * db.SaveChanges();
             */

            //Console.WriteLine(db.Artists.Count());

            //рядко се ползва
            //db.Configuration.LazyLoadingEnabled = true;
            //db.Configuration.ValidateOnSaveEnabled = true;

            IRepositories <Artist> artistRepo = new EfRepository <Artist>();

            //Console.WriteLine(artistRepo.All().Count());

            artistRepo.Add(new Artist
            {
                Name = "PeshoPetrov"
            });

            artistRepo.SaveChanges();
        }
コード例 #31
0
        public void AddSystem()
        {
            var context     = new EntityMapperDbContext();
            var authAdapter = new IdentityAuthAdapter();
            var sut         = new EfRepository <global::Data.Models.System>(context, authAdapter);

            var result = sut.Add(new global::Data.Models.System
            {
                DomainId = 1,
                Active   = true,
                Name     = "First System"
            });

            Assert.NotNull(result);
            Assert.Greater(result.Id, 0);
            var systems = context.Domains.Find(1).Systems.ToList();

            Assert.Greater(systems.Count, 0);
            Assert.NotNull(result.Domain);
            context.Systems.Remove(result);
            context.SaveChanges();
        }
コード例 #32
0
        public void AddASingleEntity()
        {
            var context     = new EntityMapperDbContext();
            var authAdapter = new IdentityAuthAdapter();
            var sut         = new EfRepository <Entity>(context, authAdapter);

            var result = sut.Add(new Entity
            {
                SystemId = 1,
                Active   = true,
                Name     = "First Entity"
            });

            Assert.NotNull(result);
            Assert.Greater(result.Id, 0);
            var entities = context.Systems.Find(1).Entities.ToList();

            Assert.Greater(entities.Count, 0);
            Assert.NotNull(result.System);
            context.Entities.Remove(result);
            context.SaveChanges();
        }
コード例 #33
0
        public void RepoAllWithDeletedOnes_ReturnsCorrect()
        {
            // Arrange
            var stubDateProvider = new Mock <IRepoTimeProvider>();
            var options          = new DbContextOptionsBuilder <ITestDbContext>()
                                   .UseInMemoryDatabase(databaseName: "RepoAllWithDeletedOnes_ReturnsCorrect")
                                   .Options;
            var stubContext = new ITestDbContext(options);
            var stubRepo    = new EfRepository <Answer>(stubContext, stubDateProvider.Object);

            stubRepo.Add(new Answer()
            {
                Content = "Petko", Correct = true
            });
            stubRepo.Add(new Answer()
            {
                Content = "MitkoTheEyes", Correct = false
            });
            stubRepo.Add(new Answer()
            {
                Content = "Edo", Correct = false, IsDeleted = true
            });
            stubRepo.Add(new Answer()
            {
                Content = "Stivi", Correct = false
            });
            stubRepo.Add(new Answer()
            {
                Content = "MartoStamatov", Correct = true, IsDeleted = true
            });
            stubRepo.Add(new Answer()
            {
                Content = "ChefichaCold", Correct = false, IsDeleted = true
            });
            stubContext.SaveChanges();

            //act
            var foundAnswers = stubRepo.AllAndDeleted;

            //assert
            Assert.AreEqual(6, foundAnswers.Count());
            Assert.AreEqual(2, foundAnswers.Where(x => x.Correct == true).Count());
            Assert.AreEqual(4, foundAnswers.Where(x => x.Correct == false).Count());
        }
コード例 #34
0
        public void CompoundKeyRepository_Should_Work()
        {
            var dbPath = EfDataDirectoryFactory.Build();
            Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
            ICompoundKeyRepository<User, string, int> repository = new EfRepository<User, string, int>(new TestObjectEntities("Data Source=" + dbPath));

            repository.Add(new User { Username = "******", Age = 21, FullName = "Jeff - 21" });
            repository.Add(new User { Username = "******", Age = 31, FullName = "Jeff - 31" });
            repository.Add(new User { Username = "******", Age = 41, FullName = "Jeff - 41" });

            repository.Add(new User { Username = "******", Age = 31, FullName = "Ben - 31" });
            repository.Add(new User { Username = "******", Age = 41, FullName = "Ben - 41" });
            repository.Add(new User { Username = "******", Age = 51, FullName = "Ben - 51" });

            repository.Get("jeff", 31).FullName.ShouldEqual("Jeff - 31");
            repository.Get("ben", 31).FullName.ShouldEqual("Ben - 31");
            repository.Get("jeff", 41).FullName.ShouldEqual("Jeff - 41");

            repository.FindAll(x => x.Age == 31).Count().ShouldEqual(2);
        }