public void Change_sql_source_verify_Empty_Inputs() { var newName = Guid.NewGuid().ToString(); var cleanProcName = newName.Replace("-", "").Replace(" ", ""); try { var createProcedure = "CREATE procedure [dbo].[" + cleanProcName + "](@ProductId int) as Begin select * from Country select * from City end"; var result = SqlHelper.RunSqlCommand(createProcedure); Assert.AreEqual(-1, result); Setup(cleanProcName); var mockSource = new Mock <IDbSource>(); IDatabaseInputRegion databaseInputRegion = new DatabaseInputRegion(_modelItem, _dbActionRegion); Assert.AreEqual(1, databaseInputRegion.Inputs.Count); Assert.AreEqual("ProductId", databaseInputRegion.Inputs.Single().Name); Assert.AreEqual("[[ProductId]]", databaseInputRegion.Inputs.Single().Value); //add testing here _source.SelectedSource = mockSource.Object; Assert.AreEqual(0, databaseInputRegion.Inputs.Count); } finally { var dropResult = DropProcedure(cleanProcName); Assert.AreEqual(-1, dropResult); } }
public void Add_A_New_InputOnSqlProcedure_Expect_New_IS_InputAdded() { const string procName = "TestingAddingANewInput"; Setup(procName); IDatabaseInputRegion databaseInputRegion = new DatabaseInputRegion(_modelItem, _dbActionRegion); Assert.AreEqual(1, databaseInputRegion.Inputs.Count); Assert.AreEqual("ProductId", databaseInputRegion.Inputs.Single().Name); Assert.AreEqual("[[ProductId]]", databaseInputRegion.Inputs.Single().Value); //testing here const string alterProcedure = "ALTER procedure [dbo].[" + procName + "](@ProductId int,@ProductId1 int,@ProductId2 int) as Begin select * from Country select * from City end"; var alterTableResults = SqlHelper.RunSqlCommand(alterProcedure); Assert.AreEqual(-1, alterTableResults); _dbActionRegion.RefreshActionsCommand.Execute(null); Assert.IsNotNull(_dbActionRegion.Actions, "No Actions were generated for source: " + _selectedSource); var procActionsToInputs = _dbActionRegion.Actions.Single(p => p.Name.EndsWith(procName)); Assert.AreEqual("ProductId", procActionsToInputs.Inputs.ToList()[0].Name); Assert.AreEqual("[[ProductId]]", procActionsToInputs.Inputs.ToList()[0].Value); Assert.AreEqual("ProductId1", procActionsToInputs.Inputs.ToList()[1].Name); Assert.AreEqual("[[ProductId1]]", procActionsToInputs.Inputs.ToList()[1].Value); Assert.AreEqual("ProductId2", procActionsToInputs.Inputs.ToList()[2].Name); Assert.AreEqual("[[ProductId2]]", procActionsToInputs.Inputs.ToList()[2].Value); }
public void DatabaseInputRegion_SourceChanged_UpdateValues() { //------------Setup for test-------------------------- var id = Guid.NewGuid(); var act = new DsfSqlServerDatabaseActivity() { SourceId = id }; var src = new Mock <IDbServiceModel>(); var lst = new ObservableCollection <IDbSource>() { new DbSourceDefinition() { Name = "bravo" }, new DbSourceDefinition() { Name = "johnny" } }; src.Setup(a => a.RetrieveSources()).Returns(lst); DatabaseSourceRegion sourceRegion = new DatabaseSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), enSourceType.SqlDatabase); DbActionRegion dbActionRegion = new DbActionRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), sourceRegion, new SynchronousAsyncWorker()); var region = new DatabaseInputRegion(ModelItemUtils.CreateModelItem(act), dbActionRegion); sourceRegion.SelectedSource = lst[0]; Assert.AreEqual(region.Inputs.Count, 0); }
public void DatabaseInputRegion_TestClone() { var id = Guid.NewGuid(); var act = new DsfSqlServerDatabaseActivity() { SourceId = id }; var src = new Mock <IDbServiceModel>(); src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IDbSource>()); DatabaseSourceRegion sourceRegion = new DatabaseSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), enSourceType.SqlDatabase); DbActionRegion dbActionRegion = new DbActionRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), sourceRegion, new SynchronousAsyncWorker()); var region = new DatabaseInputRegion(ModelItemUtils.CreateModelItem(act), dbActionRegion); Assert.AreEqual(region.IsEnabled, false); Assert.AreEqual(region.Errors.Count, 0); var clone = region.CloneRegion() as DatabaseInputRegion; if (clone != null) { Assert.AreEqual(clone.IsEnabled, false); Assert.AreEqual(clone.Errors.Count, 0); } }
public void UpdateOnActionSelection_GivenHasInputs_ShouldWriteToActiveDatalistAndPopulatesInputValues() { //---------------Set up test pack------------------- var mock = new Mock <IDataListViewModel>(); mock.Setup(model => model.ScalarCollection).Returns(new ObservableCollection <IScalarItemModel>()); DataListSingleton.SetDataList(mock.Object); var id = Guid.NewGuid(); var act = new DsfSqlServerDatabaseActivity() { SourceId = id }; var modelItem = ModelItemUtils.CreateModelItem(act); var actionRegion = new Mock <IActionToolRegion <IDbAction> >(); actionRegion.Setup(region => region.SelectedAction).Returns(ValueFunction); //---------------Assert Precondition---------------- // ReSharper disable once PossibleNullReferenceException var countBefore = DataListSingleton.ActiveDataList.ScalarCollection.Count; Assert.AreEqual(0, countBefore); //---------------Execute Test ---------------------- var inputRegion = new DatabaseInputRegion(modelItem, actionRegion.Object); var methodInfo = typeof(DatabaseInputRegion).GetMethod("UpdateOnActionSelection", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(methodInfo); methodInfo.Invoke(inputRegion, new object[] { }); //---------------Test Result ----------------------- Assert.AreEqual("[[name]]", inputRegion.Inputs.ToList()[0].Value); Assert.AreEqual("[[surname]]", inputRegion.Inputs.ToList()[1].Value); }
public void DatabaseInputRegion_Constructor_TestInput_ConstructorEmpty() { var src = new Mock <IDbServiceModel>(); src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IDbSource>()); var region = new DatabaseInputRegion(); Assert.AreEqual(region.IsEnabled, false); }
public void change_sql_source_verify_Empty_Inputs() { var newName = Guid.NewGuid().ToString(); var cleanProcName = newName.Replace("-", "").Replace(" ", ""); var createProcedure = "CREATE procedure [dbo].[" + cleanProcName + "](@ProductId int) as Begin select * from Country select * from City end"; var result = SqlHelper.RunSqlCommand(createProcedure); Assert.AreEqual(-1, result); var inputs = new List <IServiceInput>() { new ServiceInput("ProductId", "[[ProductId]]") { ActionName = "dbo." + cleanProcName } }; var sqlActivity = new DsfSqlServerDatabaseActivity() { Inputs = inputs, ActionName = "dbo." + cleanProcName, ProcedureName = "dbo." + cleanProcName, SourceId = new Guid("b9184f70-64ea-4dc5-b23b-02fcd5f91082") }; var modelItem = ModelItemUtils.CreateModelItem(sqlActivity); var environmentModel = ServerRepository.Instance.Source; environmentModel.Connect(); var environmentConnection = environmentModel.Connection; var controllerFactory = new CommunicationControllerFactory(); var _proxyLayer = new StudioServerProxy(controllerFactory, environmentConnection); var mock = new Mock <IShellViewModel>(); var dbServiceModel = new ManageDbServiceModel(new StudioResourceUpdateManager(controllerFactory, environmentConnection) , _proxyLayer.QueryManagerProxy , mock.Object , environmentModel); var source = new DatabaseSourceRegion(dbServiceModel, modelItem, Common.Interfaces.Core.DynamicServices.enSourceType.SqlDatabase); var selectedSource = source.Sources.Single(a => a.Id == sqlActivity.SourceId); source.SelectedSource = selectedSource; var actionRegion = new DbActionRegion(dbServiceModel, modelItem, source, new SynchronousAsyncWorker()); var mockSource = new Mock <IDbSource>(); IDatabaseInputRegion databaseInputRegion = new DatabaseInputRegion(modelItem, actionRegion); Assert.AreEqual(1, databaseInputRegion.Inputs.Count); Assert.AreEqual("ProductId", databaseInputRegion.Inputs.Single().Name); Assert.AreEqual("[[ProductId]]", databaseInputRegion.Inputs.Single().Value); //add testing here source.SelectedSource = mockSource.Object; Assert.AreEqual(0, databaseInputRegion.Inputs.Count); }
public void DatabaseInputRegion_Test_InputAddHeader_ExpectHeightChanges() { var id = Guid.NewGuid(); var act = new DsfSqlServerDatabaseActivity() { SourceId = id }; var src = new Mock <IDbServiceModel>(); src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IDbSource>()); DatabaseSourceRegion sourceRegion = new DatabaseSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), enSourceType.SqlDatabase); DbActionRegion dbActionRegion = new DbActionRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), sourceRegion, new SynchronousAsyncWorker()); var region = new DatabaseInputRegion(ModelItemUtils.CreateModelItem(act), dbActionRegion); Assert.AreEqual(region.IsEnabled, false); }
public override IList <IToolRegion> BuildRegions() { IList <IToolRegion> regions = new List <IToolRegion>(); if (SourceRegion == null) { SourceRegion = new DatabaseSourceRegion(Model, ModelItem, enSourceType.ODBC) { SourceChangedAction = () => { OutputsRegion.IsEnabled = false; } }; regions.Add(SourceRegion); ActionRegion = new DbActionRegionOdbc(Model, ModelItem, SourceRegion); ActionRegion.SomethingChanged += (sender, args) => { CommandText = ((IODBCActionToolRegion <IDbAction>)ActionRegion).CommandText; }; ActionRegion.ErrorsHandler += (sender, list) => { var errorInfos = list.Select(error => new ActionableErrorInfo(new ErrorInfo { ErrorType = ErrorType.Critical, Message = error }, () => { })).ToList(); UpdateDesignValidationErrors(errorInfos); Errors = new List <IActionableErrorInfo>(errorInfos); }; CommandText = ((IODBCActionToolRegion <IDbAction>)ActionRegion).CommandText; regions.Add(ActionRegion); InputArea = new DatabaseInputRegion(ModelItem, ActionRegion); regions.Add(InputArea); OutputsRegion = new OutputsRegion(ModelItem); regions.Add(OutputsRegion); if (OutputsRegion.Outputs.Count > 0) { OutputsRegion.IsEnabled = true; } ErrorRegion = new ErrorRegion(); regions.Add(ErrorRegion); SourceRegion.Dependants.Add(InputArea); SourceRegion.Dependants.Add(OutputsRegion); } regions.Add(ManageServiceInputViewModel); Regions = regions; return(regions); }
public void DatabaseInputRegion_Constructor_Scenerio_Result() { var id = Guid.NewGuid(); var act = new DsfSqlServerDatabaseActivity() { SourceId = id }; var src = new Mock <IDbServiceModel>(); src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IDbSource>()); var sourceRegion = new DatabaseSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), enSourceType.SqlDatabase); var dbActionRegion = new DbActionRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), sourceRegion, new SynchronousAsyncWorker()); var region = new DatabaseInputRegion(ModelItemUtils.CreateModelItem(act), dbActionRegion); Assert.AreEqual(region.IsEnabled, false); Assert.AreEqual(region.Errors.Count, 0); }
public void DatabaseInputRegion_RestoreFromPrevious_Restore_ExpectValuesChanged() { //------------Setup for test-------------------------- var id = Guid.NewGuid(); var act = new DsfSqlServerDatabaseActivity() { SourceId = id }; var src = new Mock <IDbServiceModel>(); src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IDbSource>()); DatabaseSourceRegion sourceRegion = new DatabaseSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), enSourceType.SqlDatabase); DbActionRegion dbActionRegion = new DbActionRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfSqlServerDatabaseActivity()), sourceRegion, new SynchronousAsyncWorker()); var region = new DatabaseInputRegion(ModelItemUtils.CreateModelItem(act), dbActionRegion); // ReSharper disable once UseObjectOrCollectionInitializer var regionToRestore = new DatabaseInputRegionClone(); regionToRestore.IsEnabled = true; //------------Execute Test--------------------------- region.RestoreRegion(regionToRestore); //------------Assert Results------------------------- }
public void Add_A_New_InputOnSqlProcedure_Expect_New_IS_InputAdded() { var newName = Guid.NewGuid().ToString(); var cleanProcName = newName.Replace("-", "").Replace(" ", ""); var dropProcedure = "USE [Dev2TestingDB] DROP PROCEDURE [dbo].[" + cleanProcName + "]"; var createProcedure = "CREATE procedure [dbo].[" + cleanProcName + "](@ProductId int) as Begin select * from Country select * from City end"; var result = SqlHelper.RunSqlCommand(createProcedure); Assert.AreEqual(-1, result); var inputs = new List <IServiceInput>() { new ServiceInput("ProductId", "[[ProductId]]") { ActionName = "dbo." + cleanProcName } }; var sqlActivity = new DsfSqlServerDatabaseActivity() { Inputs = inputs, ActionName = "dbo." + cleanProcName, ProcedureName = "dbo." + cleanProcName, SourceId = new Guid("b9184f70-64ea-4dc5-b23b-02fcd5f91082") }; var modelItem = ModelItemUtils.CreateModelItem(sqlActivity); var environmentModel = ServerRepository.Instance.Source; environmentModel.Connect(); var environmentConnection = environmentModel.Connection; var controllerFactory = new CommunicationControllerFactory(); var _proxyLayer = new StudioServerProxy(controllerFactory, environmentConnection); var mock = new Mock <IShellViewModel>(); var dbServiceModel = new ManageDbServiceModel(new StudioResourceUpdateManager(controllerFactory, environmentConnection) , _proxyLayer.QueryManagerProxy , mock.Object , environmentModel); var source = new DatabaseSourceRegion(dbServiceModel, modelItem, Common.Interfaces.Core.DynamicServices.enSourceType.SqlDatabase); var selectedSource = source.Sources.Single(a => a.Id == sqlActivity.SourceId); source.SelectedSource = selectedSource; var actionRegion = new DbActionRegion(dbServiceModel, modelItem, source, new SynchronousAsyncWorker()); var diffAction = actionRegion.Actions.First(p => p.Name != sqlActivity.ProcedureName); IDatabaseInputRegion databaseInputRegion = new DatabaseInputRegion(modelItem, actionRegion); Assert.AreEqual(1, databaseInputRegion.Inputs.Count); Assert.AreEqual("ProductId", databaseInputRegion.Inputs.Single().Name); Assert.AreEqual("[[ProductId]]", databaseInputRegion.Inputs.Single().Value); //add testing here var alterProcedure = "ALTER procedure [dbo].[" + cleanProcName + "](@ProductId int,@ProductId1 int,@ProductId2 int) as Begin select * from Country select * from City end"; //actionRegion.SelectedAction = diffAction;//trigger action changes var alterTableResults = SqlHelper.RunSqlCommand(alterProcedure); actionRegion.RefreshActionsCommand.Execute(null); var underTest = actionRegion.Actions.Single(p => p.Name.EndsWith(cleanProcName)); Assert.AreEqual(3, databaseInputRegion.Inputs.Count); Assert.AreEqual("ProductId", underTest.Inputs.ToList()[0].Name); Assert.AreEqual("ProductId1", underTest.Inputs.ToList()[1].Name); Assert.AreEqual("ProductId2", underTest.Inputs.ToList()[2].Name); Assert.AreEqual("ProductId", databaseInputRegion.Inputs.ToList()[0].Name); Assert.AreEqual("[[ProductId]]", databaseInputRegion.Inputs.ToList()[0].Value); Assert.AreEqual("ProductId1", databaseInputRegion.Inputs.ToList()[1].Name); Assert.AreEqual("[[ProductId1]]", databaseInputRegion.Inputs.ToList()[1].Value); Assert.AreEqual("ProductId2", databaseInputRegion.Inputs.ToList()[2].Name); Assert.AreEqual("[[ProductId2]]", databaseInputRegion.Inputs.ToList()[2].Value); Assert.AreEqual(-1, alterTableResults); var resultForDrop = SqlHelper.RunSqlCommand(dropProcedure); Assert.AreEqual(-1, resultForDrop); }
public void UpdateOnActionSelection_GivenHasExistingInputs_ShouldNotOverrideExistingInputs() { //---------------Set up test pack------------------- var mock = new Mock <IDataListViewModel>(); mock.Setup(model => model.ScalarCollection).Returns(new ObservableCollection <IScalarItemModel>()); DataListSingleton.SetDataList(mock.Object); var id = Guid.NewGuid(); var act = new DsfSqlServerDatabaseActivity() { SourceId = id, Inputs = new List <IServiceInput>() { new ServiceInput("MyAge", "[[MyAge]]") { ActionName = "PrintName" } } }; var modelItem = ModelItemUtils.CreateModelItem(act); var actionRegion = new Mock <IActionToolRegion <IDbAction> >(); actionRegion.Setup(region => region.SelectedAction).Returns(new DbAction { Name = "PrintName", Inputs = new List <IServiceInput> { new ServiceInput("name", "") { ActionName = "PrintName" }, new ServiceInput("surname", "") { ActionName = "PrintName" }, new ServiceInput("MyAge", "10") { ActionName = "PrintName" } }, SourceId = Guid.NewGuid() }); //---------------Assert Precondition---------------- var countBefore = DataListSingleton.ActiveDataList.ScalarCollection.Count; Assert.AreEqual(0, countBefore); //---------------Execute Test ---------------------- var inputRegion = new DatabaseInputRegion(modelItem, actionRegion.Object); Assert.AreEqual("MyAge", inputRegion.Inputs.ToList()[0].Name); Assert.AreEqual("[[MyAge]]", inputRegion.Inputs.ToList()[0].Value); var methodInfo = typeof(DatabaseInputRegion).GetMethod("UpdateOnActionSelection", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(methodInfo); methodInfo.Invoke(inputRegion, new object[] { }); //---------------Test Result ----------------------- Assert.AreEqual("[[MyAge]]", inputRegion.Inputs.ToList()[0].Value); Assert.AreEqual("MyAge", inputRegion.Inputs.ToList()[0].Name); Assert.AreEqual("[[name]]", inputRegion.Inputs.ToList()[1].Value); Assert.AreEqual("[[surname]]", inputRegion.Inputs.ToList()[2].Value); }