Пример #1
0
 public void ProcessDefinitionExtensions_GetProcessNameByFieldName_ReturnsNull_IfNoName()
 {
     var d = new ProcessDefinition("name");
     Assert.IsNull(d.GetProcessNameByFieldName(null));
     Assert.IsNull(d.GetProcessNameByFieldName(string.Empty));
     Assert.IsNull(d.GetProcessNameByFieldName(" "));
 }
Пример #2
0
        public void UpgradeDatabase_UpgradingMissingTable_ShouldOnlyCreateIt()
        {
            var process = new ProcessDefinition(Constants.AccountProcessName);
            process.IsStateEnabled = true;
            var table = new TableDefinition(Constants.AccountProcessName);
            table.Relationships.Add(new TableRelationshipDefinition {FKTableName = "fkt"});
            table.FieldList.Add(new TableFieldDefinition {IsPrimaryKey = true});
            process.TableList.Add(table);

            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, null);
            gen.UpgradeDatabase(process);

            Assert.AreEqual(29, actionsCalled.Count);

            Assert.IsTrue(Contains(actionsCalled, "GetTableDefinition"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateTableSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetAddForeignKeySql"));
            Assert.IsTrue(Contains(actionsCalled, "GetInsertUpdateStates"));
            Assert.IsTrue(Contains(actionsCalled, "GetPrimaryKeyAlterConstraintSql"));
            Assert.IsTrue(Contains(actionsCalled, "ExecuteSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateAuditTable"));
            Assert.IsTrue(Contains(actionsCalled, "GetAuditTriggerScript"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateIndexesSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateBinaryContentTable"));
            Assert.IsTrue(Contains(actionsCalled, "GetApprovalAllowDelegationFixScript"));

            // If process name equals Constants.AccountProcessName
            Assert.IsTrue(Contains(actionsCalled, "GetAccountsLdapProfileFixScript"));
        }
Пример #3
0
 public void Create_ReturnsValidDefinition()
 {
     var d = new ProcessDefinition("name");
     Assert.AreEqual("name", d.Name);
     Assert.AreEqual(0, d.SecurityConfigurationList.Count);
     Assert.AreEqual(0, d.TableList.Count);
     Assert.AreEqual(0, d.FieldList.Count);
 }
Пример #4
0
 public void ProcessDefinitionExtensions_GetProcessNameByFieldName_ReturnsBaseName_IfFieldIsInBase()
 {
     var d = new ProcessDefinition("name");
     d.FieldList.Add(new ProcessFieldDefinition { Name = "field" });
     d.BaseProcess = new ProcessDefinition("name2");
     d.BaseProcess.FieldList.Add(new ProcessFieldDefinition { Name = "field2" });
     Assert.AreEqual("name2", d.GetProcessNameByFieldName("field2"));
 }
 public void OnAfterAddProcessViewClassesTest()
 {
     var target = new APQPProcessViewSilverlightExtension(); 
     var assemblyCode = new StringBuilder();
     IProcessDefinition process = new ProcessDefinition(null);
     process.ProcessViews.Add(new ProcessView("Not APQP", Guid.NewGuid(), ProcessViewType.DataCollect, string.Empty, null));
     process.ProcessViews.Add(new ProcessView("APQP", Guid.NewGuid(), ProcessViewType.APQP, string.Empty, null));
     ServerAssemblyGenerator assemblyGenerator = new ServerAssemblyGeneratorTests.DummyAssemblyGenerator(); 
     target.OnAfterAddProcessViewClasses(assemblyCode, process, assemblyGenerator);
 }
        public void GetInfoClassInterfaces()
        {
            var ext = new ActionItemInterfacesExtension();

            IProcessDefinition pd = new ProcessDefinition(string.Empty);
            var types = ext.GetInfoClassInterfaces(pd);

            Assert.AreEqual(types.Count(), 1);
            Assert.AreEqual(types[0], typeof(IActionItemInfo));
        }
        public void GetReadOnlyListInterfacesTest()
        {
            var ext = new AccountInterfacesExtension();

            IProcessDefinition pd = new ProcessDefinition(string.Empty);
            var types = ext.GetReadOnlyListInterfaces(pd);

            Assert.AreEqual(types.Count(), 1);
            Assert.AreEqual(types[0], typeof(IAccountList));
        }
Пример #8
0
        public void ProcessDefinitionExtensions_GetTableNameByFieldNameWithEmptyFieldName_ReturnsNull()
        {
            var d = new ProcessDefinition("name");
            var t = new TableDefinition("table");
            var f = new TableFieldDefinition() {SystemName = "field"};

            t.FieldList.Add(f);
            d.TableList.Add(t);

            Assert.AreEqual(null, d.GetTableNameByFieldName(string.Empty));
        }
        public void InfoClassHasGetProcessDefinitionMethods()
        {
            var pn = "p" + Guid.NewGuid().ToString("N");
            var process = new ProcessDefinition(pn);
            process.TableList.Add(new TableDefinition(pn));
            process.RootTable.AddCommonFields();

            var assembly = CreateAssemblyFromProcess(process);

            var infoClass = assembly.GetType("Dynamic" + pn + "." + pn + "Info");

            var m = infoClass.GetMethod("GetProcessDefinition", BindingFlags.Public | BindingFlags.Static);
            Assert.IsNotNull(m);
        }
        public void ListClassHasGetListAndGetPagedListMethods()
        {
            var pn = "p" + Guid.NewGuid().ToString("N");
            var process = new ProcessDefinition(pn);
            process.TableList.Add(new TableDefinition(pn));
            process.RootTable.AddCommonFields();

            var assembly = CreateAssemblyFromProcess(process);

            var listClass = assembly.GetType("Dynamic" + pn + "." + pn + "List");

            var m = listClass.GetMethod("Get" + pn + "List", BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(string), typeof(int), typeof(int), typeof(SortList), typeof(string), typeof(bool) }, null);
            Assert.IsNotNull(m);

            m = listClass.GetMethod("Get" + pn + "PageList", BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(string), typeof(int?), typeof(int), typeof(SortList), typeof(string) }, null);
            Assert.IsNotNull(m);
        }
        public void WhenInvoked_InfoClassGetProcessDefinitionMethods_ReturnsValidInfo()
        {
            Mock.Arrange(() => LocalizationUtils.GetSupportedLocalizations(Arg.AnyString)).ReturnsCollection(new ILocalizationInfo[] { });

            var pn = "p" + Guid.NewGuid().ToString("N");
            var process = new ProcessDefinition(pn);
            process.TableList.Add(new TableDefinition(pn));
            process.TableList[0].FieldList.Add(
                new TableFieldDefinition
                    {
                        ColumnName = "TestField1",
                        Width = new List<int> { 200 },
                        ColumnType = ColumnTypes.String,
                        SystemName = "TestField1",
                        IncludeInList = true,
                        IsSystemField = false
                    });
            process.TableList[0].FieldList.Add(
                new TableFieldDefinition
                    {
                        ColumnName = "TestField2",
                        Width = new List<int> { 200 },
                        ColumnType = ColumnTypes.String,
                        SystemName = "TestField2",
                        IncludeInList = true,
                        IsSystemField = false
                    });
            process.RootTable.AddCommonFields();

            var assembly = CreateAssemblyFromProcess(process);

            var infoClass = assembly.GetType("Dynamic" + pn + "." + pn + "Info");

            var m = infoClass.GetMethod("GetProcessDefinition", BindingFlags.Public | BindingFlags.Static);

            var p = (SharedTypes.ProcessDefinition)m.Invoke(null, BindingFlags.Static | BindingFlags.Public, null, null, null);
            Assert.AreEqual(1, p.TableList.Count);

            Assert.AreEqual(2, p.TableList[0].GetFields().Count());
        }
Пример #12
0
        public void IsDefinedInBaseProcessTest()
        {
            // Arrange
            var section = CreateSection();
            IProcessDefinition process = new ProcessDefinition(ProcessName);
            // Act
            var result = section.IsDefinedInBaseProcess(process);
            // Assert
            Assert.IsFalse(result);

            // Arrange
            process = CreateInheritedProcess(null, null);
            // Act
            result = section.IsDefinedInBaseProcess(process);
            // Assert
            Assert.IsFalse(result);

            // Arrange
            process = CreateInheritedProcess(section, ProcessName);
            // Act
            result = section.IsDefinedInBaseProcess(process);
            // Assert
            Assert.IsFalse(result);

            // Arrange
            process = CreateInheritedProcess(section, BaseProcessName);
            // Act
            result = section.IsDefinedInBaseProcess(process);
            // Assert
            Assert.IsTrue(result);

            // Arrange
            process = CreateInheritedProcess(section, BaseBaseProcessName);
            // Act
            result = section.IsDefinedInBaseProcess(process);
            // Assert
            Assert.IsTrue(result);
        }
        public void EditRetrieverClassHasRelationshipsListMethods()
        {
            var pn = "p_ref_sag01";
            var ref1process = new ProcessDefinition(pn);
            ref1process.TableList.Add(new TableDefinition(pn));
            ref1process.RootTable.AddCommonFields();
            var assembly = CreateAssemblyFromProcess(ref1process);

            pn = "p" + Guid.NewGuid().ToString("N");
            var process = new ProcessDefinition(pn);
            process.TableList.Add(new TableDefinition(pn));
            process.RootTable.AddCommonFields();
            process.RootTable.FieldList.Add(new TableFieldDefinition() { ColumnName = "Ref2Id", SystemName = "Ref2Id", IsNullable = true, ColumnType = ColumnTypes.Integer });
            process.RootTable.FieldList.Add(new TableFieldDefinition() { ColumnName = "Ref01Id", SystemName = "Ref01Id", IsNullable = true, ColumnType = ColumnTypes.Integer });
            process.RootTable.Relationships.Add(new TableRelationshipDefinition { FKName = "Ref01Id", FKTableName = "p_ref_sag01", RelationshipType = RelationshipKinds.OneToMany, JoinFieldName = "Id", Name = "Ref01", Prefix = "f01" });
            process.RootTable.Relationships.Add(new TableRelationshipDefinition { FKName = "Ref1Id", FKTableName = "p_ref_sag01", RelationshipType = RelationshipKinds.ManyToMany, JoinFieldName = "Id", Name = "Ref1", Prefix = "f0" });

            assembly = CreateAssemblyFromProcess(process);

            var retrieverClass = assembly.GetType("Dynamic" + pn + "." + pn + "EditRetriever");

            var p = retrieverClass.GetProperty("Ref1List");
            Assert.IsNotNull(p);
            Assert.IsTrue(p.CanRead);
            Assert.IsTrue(typeof(IInfoList).IsAssignableFrom(p.PropertyType));
        }
        public void EditClassHasGetAndNewMethods()
        {
            var pn = "p" + Guid.NewGuid().ToString("N");
            var process = new ProcessDefinition(pn);
            process.TableList.Add(new TableDefinition(pn));
            process.RootTable.AddCommonFields();

            var assembly = CreateAssemblyFromProcess(process);

            var editClass = assembly.GetType("Dynamic" + pn + "." + pn + "Edit");

            var m = editClass.GetMethod("Get" + pn, BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(int), typeof(string) }, null);
            Assert.IsNotNull(m);

            m = editClass.GetMethod("Get" + pn, BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(DetailCriteria) }, null);
            Assert.IsNotNull(m);

            m = editClass.GetMethod("New" + pn, BindingFlags.Public | BindingFlags.Static, null, new Type[] { }, null);
            Assert.IsNotNull(m);
        }
Пример #15
0
        public void UpgradeDatabase_UpgradingExistingTable_ShouldUpdateIt()
        {
            var process = new ProcessDefinition("name");
            process.IsStateEnabled = true;
            var table = new TableDefinition("name");
            table.Relationships.Add(new TableRelationshipDefinition { Name = "FK_1", FKTableName = "fkt" });
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = true, GenerateDbColumn = true, ColumnName = Constants.IdColumnName});
            process.TableList.Add(table);


            var dbTable = DbTableDefinition.Create(
                "table",
                new DbColumnDefinition[] { },
                new[] { DbForeignKeyDefinition.Create("FK_1", string.Empty, new[] { Constants.IdColumnName }, "table", new[] { Constants.IdColumnName }) });
            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, dbTable);
            gen.UpgradeDatabase(process);

            Assert.IsTrue(Contains(actionsCalled, "GetTableDefinition"));
            Assert.IsFalse(Contains(actionsCalled, "GetBeginTransactionSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetDropTableSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateTableSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetIdentityInsertSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetDataCopySql"));
            Assert.IsFalse(Contains(actionsCalled, "GetDropFKConstraintsSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetInsertUpdateStates"));
            Assert.IsTrue(Contains(actionsCalled, "GetDropTableSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetDropPKConstraintsSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetRenameTableSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetPrimaryKeyAlterConstraintSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetAddForeignKeySql"));
            Assert.IsFalse(Contains(actionsCalled, "GetFKConstraintsSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetCommitTransactionSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateAuditTable"));
            Assert.IsTrue(Contains(actionsCalled, "GetAuditTriggerScript"));
            Assert.IsTrue(Contains(actionsCalled, "ExecuteSql"));
        }
Пример #16
0
        public void ProcessDefinitionHasDefaultLocalization()
        {
            // Arrange.
            var processDefinition = new ProcessDefinition("TestProcess");

            // Assert.
            Assert.IsNotNull(processDefinition.DefaultLocalization);
            Assert.AreEqual(Constants.DefaultCulture, processDefinition.DefaultLocalization.Culture);
            Assert.AreEqual(Constants.DefaultLocalizationEnglishName, processDefinition.DefaultLocalization.EnglishName);
            Assert.AreEqual(Constants.DefaultLocalizationNativeName, processDefinition.DefaultLocalization.NativeName);
            Assert.AreEqual(Constants.DefaultLocalizationIconId, processDefinition.DefaultLocalization.IconId);

            Assert.IsTrue(processDefinition.Localizations.Contains(processDefinition.DefaultLocalization));
        }
Пример #17
0
 public void ProcessDefinitionExtensions_GetProcessNameByFieldName_ReturnsRootName_IfFieldIsInRoot()
 {
     var d = new ProcessDefinition("name");
     d.FieldList.Add(new ProcessFieldDefinition {Name = "field"});
     Assert.AreEqual("name", d.GetProcessNameByFieldName("field"));
 }
Пример #18
0
        public void UpgradeDatabase_UpgradingExistingTable_UseIdentityInsertOnlyIfHasIdentityColumn()
        {
            var process = new ProcessDefinition("name");
            var table = new TableDefinition("name");
            table.Relationships.Add(new TableRelationshipDefinition { Name = "FK_1", FKTableName = "fkt" });
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = true, GenerateDbColumn = true, ColumnName = "Id" });
            process.TableList.Add(table);

            var dbTable = DbTableDefinition.Create("table", new DbColumnDefinition[] { }, new[] { DbForeignKeyDefinition.Create("FK_1", string.Empty, new[] { "Id" }, "table", new[] { "Id" }) });

            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, dbTable);
            gen.UpgradeDatabase(process);

            Assert.IsFalse(Contains(actionsCalled, "GetIdentityInsertSql"));

            table.FieldList.Clear();
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = false, GenerateDbColumn = true, ColumnName = "Id" });
            actionsCalled.Clear();

            gen.UpgradeDatabase(process);
            Assert.IsFalse(Contains(actionsCalled, "GetIdentityInsertSql"));
        }
Пример #19
0
 public void ProcessDefinitionExtensions_GetProcessNameByFieldName_ReturnsNull_IfNotFound()
 {
     var d = new ProcessDefinition("name");
     Assert.IsNull(d.GetProcessNameByFieldName("field"));
 }
Пример #20
0
        public void UpgradeDatabase_GetFKConstraintsSql_WontBeCalled_IfPrimaryKeyNotFound()
        {
            var process = new ProcessDefinition("name");
            var table = new TableDefinition("name");
            table.Relationships.Add(new TableRelationshipDefinition { FKTableName = "fkt" });
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = true, GenerateDbColumn = true, ColumnName = "Id" });
            process.TableList.Add(table);

            var dbTable = DbTableDefinition.Create(
                "table",
                new DbColumnDefinition[] { },
                new[] { DbForeignKeyDefinition.Create(string.Empty, string.Empty, new[] { "IdNew" }, "table", new[] { "IdNew" }) });

            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, dbTable);
            gen.UpgradeDatabase(process);

            Assert.IsFalse(Contains(actionsCalled, "GetFKConstraintsSql"));
        }
Пример #21
0
        public void UpgradeDatabase_DerivedProcess_CreatesForeignKeyToBaseTable()
        {
            var process = new ProcessDefinition("name");
            var table = new TableDefinition("name");
            table.AddBaseProcess("BaseProcessName", process.Name);
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = true, GenerateDbColumn = true, ColumnName = "Id" });
            process.TableList.Add(table);

            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, null);
            gen.UpgradeDatabase(process);

            Assert.IsTrue(Contains(actionsCalled, "GetAddForeignKeySql"));
        }
Пример #22
0
        public void GetAllFieldsTest()
        {
            // Arrange.
            var baseProcess = new ProcessDefinition("BaseProcess");
            var field1 = new ProcessFieldDefinition { Name = "Field1" };
            baseProcess.FieldList.Add(field1);

            var derivedProcess = new ProcessDefinition("DerivedProcess") { BaseProcess = baseProcess };
            var field2 = new ProcessFieldDefinition { Name = "Field2" };
            derivedProcess.FieldList.Add(field2);

            // Act.
            var allFields = derivedProcess.GetAllFields().ToList();

            // Assert.
            Assert.AreEqual(2, allFields.Count);
            Assert.IsTrue(allFields.Contains(field1));
            Assert.IsTrue(allFields.Contains(field2));
        }
        public void EditRetrieverClassHasGetAndNewMethods()
        {
            var pn = "p" + Guid.NewGuid().ToString("N");
            var process = new ProcessDefinition(pn);
            process.TableList.Add(new TableDefinition(pn));
            process.RootTable.AddCommonFields();

            var assembly = CreateAssemblyFromProcess(process);

            var retrieverClass = assembly.GetType("Dynamic" + pn + "." + pn + "EditRetriever");

            // find IUnitIfWork interface
            Assert.IsTrue(retrieverClass.GetInterfaces().Any(x => x.Name == "IUnitOfWork`1"));

            var f = retrieverClass.GetField(pn + "EditProperty", BindingFlags.Public | BindingFlags.Static);
            Assert.IsNotNull(f);

            var p = retrieverClass.GetProperty(pn + "Edit");
            Assert.IsNotNull(p);
            Assert.IsTrue(p.CanRead);
            Assert.IsTrue(p.CanWrite);

            p = retrieverClass.GetProperty("Model");
            Assert.IsNotNull(p);
            Assert.IsTrue(p.CanRead);
            Assert.IsFalse(p.CanWrite);

            var m = retrieverClass.GetMethod("DataPortal_Create", BindingFlags.NonPublic | BindingFlags.Instance);
            Assert.IsNotNull(m);

            m = retrieverClass.GetMethod("DataPortal_Fetch", BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { typeof(DetailCriteria) }, null);
            Assert.IsNotNull(m);

            m = retrieverClass.GetMethod("DataPortal_Fetch", BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { typeof(DownloadCriteria) }, null);
            Assert.IsNotNull(m);

            m = retrieverClass.GetMethod("DataPortal_Delete", BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { typeof(string) }, null);
            Assert.IsNotNull(m);
        }