Ejemplo n.º 1
0
        public void DatabaseObjectsGraphRepository_AppendObject2()
        {
            // Arrange
            WipeoutAll();

            var g  = new DatabaseObjectsGraph();
            var d1 = new DatabaseObject(DatabaseObjectType.Database, "D1");
            var t1 = new DatabaseObject(DatabaseObjectType.Table, "T1");
            var c1 = new DatabaseObject(DatabaseObjectType.Table, "C1");
            var s1 = new DatabaseObject(DatabaseObjectType.Table, "S1");

            g.AddDependency(d1, t1);
            g.AddDependency(t1, c1);
            g.AddDependency(d1, s1);
            _repository.SaveState(g);

            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(4));
            var adjacencyListForS1 = Connection.ExecuteScalar("select AdjacencyListJson from DatabaseObjectsGraph where VertexId = 3") as string;

            Assert.That(adjacencyListForS1, Is.EqualTo("[]"));

            var anotherGraph = _repository.LoadState();
            var s1FromGraph  = anotherGraph.GetDatabaseObjectsBeginsWith("S1").Single();
            var c1FromGraph  = anotherGraph.GetDatabaseObjectsBeginsWith("C1").Single();

            // Act
            anotherGraph.AddDependency(s1FromGraph, c1FromGraph);
            // We don't modify object state because the whole graph in db will be overwritten
            _repository.SaveState(anotherGraph);

            // Assert
            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(4));
            adjacencyListForS1 = Connection.ExecuteScalar("select AdjacencyListJson from DatabaseObjectsGraph where VertexId = 3") as string;
            Assert.That(adjacencyListForS1, Is.EqualTo("[2]"));
        }
Ejemplo n.º 2
0
        public void DatabaseObjectsGraphRepository_AppendObject()
        {
            // Arrange
            WipeoutAll();

            var g  = new DatabaseObjectsGraph();
            var d1 = new DatabaseObject(DatabaseObjectType.Database, "D1");
            var t1 = new DatabaseObject(DatabaseObjectType.Table, "T1");
            var t2 = new DatabaseObject(DatabaseObjectType.Table, "T2");

            g.AddDatabaseObject(d1);
            g.AddDependency(d1, t1);
            g.AddDependency(d1, t2);

            _repository.SaveState(g);

            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(3));

            var anotherGraph = _repository.LoadState();
            var t1FromGraph  = anotherGraph.GetDatabaseObjectsBeginsWith("T1").Single();

            // Act
            var s1 = new DatabaseObject(DatabaseObjectType.StoredProcedure, "S1");

            anotherGraph.AddDependency(t1FromGraph, s1);
            _repository.SaveState(anotherGraph);

            // Assert
            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(4));
        }
Ejemplo n.º 3
0
        public void DatabaseObjectsGraphRepository_BasicSave()
        {
            // Arrange
            WipeoutAll();

            // Act
            var g = new DatabaseObjectsGraph();

            var d1 = new DatabaseObject(DatabaseObjectType.Database, "D1");
            var t1 = new DatabaseObject(DatabaseObjectType.Table, "T1");
            var t2 = new DatabaseObject(DatabaseObjectType.Table, "T2");
            var s1 = new DatabaseObject(DatabaseObjectType.StoredProcedure, "S1");
            var c1 = new DatabaseObject(DatabaseObjectType.Column, "C1");

            g.AddDatabaseObject(d1);
            g.AddDependency(d1, t1);
            g.AddDependency(d1, t2);
            g.AddDependency(d1, s1);
            g.AddDependency(t1, c1);

            _repository.SaveState(g);

            // Assert
            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(5));
            Assert.That(GetTableRowCount("DatabaseObjectsGraph"), Is.EqualTo(5));
        }
Ejemplo n.º 4
0
        public void DatabaseObjectsGraphRepository_DuplicateObject()
        {
            // Arrange
            WipeoutAll();
            var g = new DatabaseObjectsGraph();

            var d1 = new DatabaseObject(DatabaseObjectType.Database, "D1");
            var t1 = new DatabaseObject(DatabaseObjectType.Table, "T1");
            var c1 = new DatabaseObject(DatabaseObjectType.Column, "C1");

            g.AddDatabaseObject(d1);
            g.AddDependency(d1, t1);
            g.AddDependency(t1, c1);

            _repository.SaveState(g);

            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(3));
            Assert.That(GetTableRowCount("DatabaseObjectsGraph"), Is.EqualTo(3));

            var anotherGraph = _repository.LoadState();

            // Act
            // Adding the same objects again
            var d12 = new DatabaseObject(DatabaseObjectType.Database, "D1");
            var t12 = new DatabaseObject(DatabaseObjectType.Table, "T1");
            var c12 = new DatabaseObject(DatabaseObjectType.Column, "C1");

            g.AddDatabaseObject(d12);
            g.AddDependency(d12, t12);
            g.AddDependency(t12, c12);

            // Assert
            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(3));
            Assert.That(GetTableRowCount("DatabaseObjectsGraph"), Is.EqualTo(3));
        }
Ejemplo n.º 5
0
        public void DatabaseObjectsGraphRepository_AddProperty()
        {
            // Arrange
            WipeoutAll();

            var g = new DatabaseObjectsGraph();

            var d1 = new DatabaseObject(DatabaseObjectType.Database, "D1");
            var t1 = new DatabaseObject(DatabaseObjectType.Table, "T1");
            var c1 = new DatabaseObject(DatabaseObjectType.Column, "C1");

            g.AddDatabaseObject(d1);
            g.AddDependency(d1, t1);
            g.AddDependency(t1, c1);
            _repository.SaveState(g);

            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(3));
            Assert.That(GetTableRowCount("DatabaseObjectProperty"), Is.EqualTo(0));

            var anotherGraph = _repository.LoadState();

            var c1FromGraph = anotherGraph.GetDatabaseObjectsBeginsWith("C1").Single();

            Assert.That(c1FromGraph.ObjectType, Is.EqualTo(DatabaseObjectType.Column));

            // Act
            anotherGraph.AddProperty(c1FromGraph, new RelevantToFinancialReportingProperty());
            _repository.SaveState(anotherGraph);

            // Assert
            Assert.That(GetTableRowCount("DatabaseObjectProperty"), Is.EqualTo(1));
        }
Ejemplo n.º 6
0
        public HttpResponseMessage Post(int objectId, int columnId)
        {
            _graph.AddDependency(objectId, columnId);
            var    item     = GetStoredProcedure(objectId);
            var    response = Request.CreateResponse <ViewModels.StoredProcedure>(HttpStatusCode.Created, item);
            string uri      = Url.Link("GetStoredProcedure", new { objectId = objectId });

            response.Headers.Location = new Uri(uri);
            return(response);
        }
Ejemplo n.º 7
0
        public void Setup()
        {
            _g  = new DatabaseObjectsGraph();
            _D1 = new DatabaseObject(DatabaseObjectType.Database, "D1");
            _T1 = new DatabaseObject(DatabaseObjectType.Table, "T1");
            _T2 = new DatabaseObject(DatabaseObjectType.Table, "T2");
            _S1 = new DatabaseObject(DatabaseObjectType.StoredProcedure, "S1");
            _C1 = new DatabaseObject(DatabaseObjectType.Column, "C1");

            _g.AddDatabaseObject(_D1);
            _g.AddDependency(_D1, _T1);
            _g.AddDependency(_D1, _T2);
            _g.AddDependency(_D1, _S1);
            _g.AddDependency(_T1, _C1);

            _D1.Properties.Add(new RelevantToFinancialReportingProperty());
            _D1.Properties.Add(new CommentProperty("Comment"));
        }
Ejemplo n.º 8
0
        public void DatabaseObjectsGraphRepository_RemoveProperty()
        {
            // Arrange
            WipeoutAll();
            var g = new DatabaseObjectsGraph();

            var d1 = new DatabaseObject(DatabaseObjectType.Database, "D1");
            var t1 = new DatabaseObject(DatabaseObjectType.Table, "T1");
            var c1 = new DatabaseObject(DatabaseObjectType.Column, "C1");

            g.AddDatabaseObject(d1);
            g.AddDependency(d1, t1);
            g.AddDependency(t1, c1);

            // That's fine for test, but won't work with AddProperty
            c1.Properties.Add(new RelevantToFinancialReportingProperty());
            c1.Properties.Add(new CommentProperty("Comment"));

            _repository.SaveState(g);

            Assert.That(GetTableRowCount("DatabaseObject"), Is.EqualTo(3));
            Assert.That(GetTableRowCount("DatabaseObjectsGraph"), Is.EqualTo(3));
            Assert.That(GetTableRowCount("DatabaseObjectProperty"), Is.EqualTo(2));

            var anotherGraph = _repository.LoadState();

            var c1FromGraph = anotherGraph.GetDatabaseObjectsBeginsWith("C1").Single();

            Assert.That(c1FromGraph.ObjectType, Is.EqualTo(DatabaseObjectType.Column));
            Assert.That(c1FromGraph.Properties.Count, Is.EqualTo(2));

            // Act
            anotherGraph.RemoveProperty(c1FromGraph, c1FromGraph.Properties.First());
            _repository.SaveState(anotherGraph);

            // Assert
            Assert.That(GetTableRowCount("DatabaseObjectProperty"), Is.EqualTo(1));
        }
Ejemplo n.º 9
0
        public void DatabaseObjectsGraph_Memento()
        {
            var memento = _g.CreateMemento();

            DatabaseObject[] st = memento.State;
            Assert.That(st.Count(), Is.EqualTo(5));

            var anotherGraph = new DatabaseObjectsGraph(memento);

            Assert.That(anotherGraph.ObjectsCount, Is.EqualTo(5));
            var anotherSproc = new DatabaseObject(DatabaseObjectType.StoredProcedure, "C1");

            anotherGraph.AddDependency(_T1, anotherSproc);

            var anotherMemento = anotherGraph.CreateMemento();

            int[][] jaggedArray = anotherGraph.Digraph.CreateMemento().State;
        }