public void All_Of_The_Operations_Are_Put_Into_The_Result()
        {
            var columnOp = MockRepository.GenerateMock<MergeOperation<IColumn>>();
            var tableOp = MockRepository.GenerateMock<MergeOperation<ITable>>();
            var keyOp = MockRepository.GenerateMock<MergeOperation<IKey>>();
            var indexOp = MockRepository.GenerateMock<MergeOperation<IIndex>>();

            DatabaseMergeResult result1 = new DatabaseMergeResult();
            result1.AddColumnOperation(columnOp);
            result1.AddTableOperation(tableOp);
            result1.AddKeyOperation(keyOp);
            result1.AddIndexOperation(indexOp);

            DatabaseMergeResult result2 = new DatabaseMergeResult();
            result2.CopyFrom(result1);

            Assert.That(result1.ColumnOperations, Has.Count(1));
            Assert.That(result1.TableOperations, Has.Count(1));
            Assert.That(result1.KeyOperations, Has.Count(1));
            Assert.That(result1.IndexOperations, Has.Count(1));

            Assert.That(result1.ColumnOperations.ElementAt(0), Is.SameAs(columnOp));
            Assert.That(result1.TableOperations.ElementAt(0), Is.SameAs(tableOp));
            Assert.That(result1.KeyOperations.ElementAt(0), Is.SameAs(keyOp));
            Assert.That(result1.IndexOperations.ElementAt(0), Is.SameAs(indexOp));
        }
Exemple #2
0
        public void It_Should_Apply_Changes_And_Call_Back_To_The_Main_Panel()
        {
            var form    = MockRepository.GenerateStub <ISimpleDBMergeResultForm>();
            var results = new DatabaseMergeResult();
            var panel   = MockRepository.GenerateMock <IMainPanel>();

            // These are all two step processes
            var tableOp  = new MockMergeOperation <ITable, Table>();
            var columnOp = new MockMergeOperation <IColumn, Column>();
            var keyOp    = new MockMergeOperation <IKey, Key>();
            var indexOp  = new MockMergeOperation <IIndex, Index>();

            results.AddTableOperation(tableOp);
            results.AddColumnOperation(columnOp);
            results.AddKeyOperation(keyOp);
            results.AddIndexOperation(indexOp);

            form.Stub(f => { var v = f.SelectedAddedTableOperations; }).Return(new List <IMergeOperation <ITable> > {
                tableOp
            });
            form.Stub(f => { var v = f.SelectedRemovedTableOperations; }).Return(new List <IMergeOperation <ITable> >());

            new SimpleDBMergeResultPresenter(form, panel, results);
            form.GetEventRaiser(f => f.ChangesAccepted += null).Raise(form, null);

            panel.AssertWasCalled(f => f.CloseDatabaseRefreshResultsForm(Changes.WereAccepted));

            Assert.That(tableOp.OperationRun, Is.True);
            Assert.That(indexOp.OperationRun, Is.True);
            Assert.That(columnOp.OperationRun, Is.True);
            Assert.That(keyOp.OperationRun, Is.True);

            Assert.That(tableOp.SecondStepRun, Is.True);
            Assert.That(indexOp.SecondStepRun, Is.True);
            Assert.That(columnOp.SecondStepRun, Is.True);
            Assert.That(keyOp.SecondStepRun, Is.True);
        }