Example #1
0
        internal DatabaseInitializerTracker(
            bool databaseExists,
            bool modelCompatible      = true,
            bool hasMetadata          = true,
            MigrationsChecker checker = null)
        {
            _databaseExists      = databaseExists;
            _mockInternalContext = new Mock <InternalContextForMock <TContext> >
            {
                CallBase = true
            };
            _mockDatabaseOps = new Mock <DatabaseOperations>();
            _mockDbContext   = Mock.Get((TContext)_mockInternalContext.Object.Owner);

            _mockInternalContext.Setup(c => c.DatabaseOperations).Returns(_mockDatabaseOps.Object);
            _mockInternalContext.Setup(c => c.DefaultInitializer).Returns(new CreateDatabaseIfNotExists <DbContext>());
            _mockInternalContext.Setup(c => c.CreateDatabase(It.IsAny <ObjectContext>())).Callback(
                () =>
            {
                _databaseExists = true;
                _operations.Append("CreateDatabase ");
            });

            _mockDatabaseOps.Setup(d => d.Create(It.IsAny <ObjectContext>())).Callback(
                () =>
            {
                _databaseExists = true;
                _operations.Append("Create ");
            });

            _mockDatabaseOps.Setup(d => d.Exists(It.IsAny <ObjectContext>())).Callback(() => _operations.Append("Exists ")).Returns(
                DatabaseExists);
            _mockDatabaseOps.Setup(d => d.DeleteIfExists(It.IsAny <ObjectContext>())).Callback(() => _operations.Append("DeleteIfExists ")).
            Returns(DeleteIfExists);

            _mockInternalContext.Setup(c => c.UseTempObjectContext()).Callback(() => _operations.Append("UseTempObjectContext "));
            _mockInternalContext.Setup(c => c.DisposeTempObjectContext()).Callback(() => _operations.Append("DisposeTempObjectContext "));
            _mockInternalContext.Setup(c => c.SaveMetadataToDatabase()).Callback(() => _operations.Append("SaveMetadataToDatabase "));

            _mockInternalContext.Setup(c => c.CompatibleWithModel(It.IsAny <bool>())).Callback(
                (bool throwIfNoMetadata) =>
            {
                if (!hasMetadata && throwIfNoMetadata)
                {
                    throw Error.Database_NoDatabaseMetadata();
                }
            }).Returns(modelCompatible);

            _mockInternalContext.Setup(c => c.CreateObjectContextForDdlOps()).Returns(new Mock <ClonedObjectContext>().Object);
            _mockInternalContext.SetupGet(c => c.ProviderName).Returns("Dummy.Data.Provider");

            _mockStrategy = new Mock <TInitializer>(checker)
            {
                CallBase = true
            };
            _mockStrategy.Protected().Setup("Seed", ItExpr.IsAny <TContext>()).Callback(() => _operations.Append("Seed "));
        }
 internal CreateDatabaseIfNotExists(MigrationsChecker migrationsChecker)
 {
     _migrationsChecker = migrationsChecker ?? new MigrationsChecker();
 }
Example #3
0
 internal DropCreateDatabaseAlways(MigrationsChecker migrationsChecker)
 {
     _migrationsChecker = migrationsChecker ?? new MigrationsChecker();
 }
Example #4
0
 internal DropCreateDatabaseIfModelChanges(MigrationsChecker migrationsChecker)
 {
     _migrationsChecker = migrationsChecker ?? new MigrationsChecker();
 }