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]")); }
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)); }
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)); }
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)); }
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)); }
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); }
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")); }
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)); }
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; }