예제 #1
0
        public void DataListModel_Create_PayLoadWithComplexObjectsArrayWithParentArray_ShouldHaveComplexObjectItems()
        {
            //------------Setup for test--------------------------
            const string Shape         = @"<DataList>
                                    <Car Description=""A recordset of information about a car"" IsEditable=""True"" ColumnIODirection=""Both"" >
                                        <Make Description=""Make of vehicle"" IsEditable=""True"" ColumnIODirection=""None"" />
                                        <Model Description=""Model of vehicle"" IsEditable=""True"" ColumnIODirection=""None"" />
                                    </Car>
                                    <Country Description=""name of Country"" IsEditable=""True"" ColumnIODirection=""Both"" />
                                    <a Description="""" IsEditable=""True"" IsJson=""True"" IsArray=""False"" ColumnIODirection=""Both"" >
                                        <a Description="""" IsEditable=""True"" IsJson=""True"" IsArray=""True"" ColumnIODirection=""None"" >
                                            <a Description="""" IsEditable=""True"" IsJson=""True"" IsArray=""True"" ColumnIODirection=""None"" >
                                                <a1 Description="""" IsEditable=""True"" IsJson=""True"" IsArray=""False"" ColumnIODirection=""None"" ></a1>
                                            </a>
                                        </a>                                        
                                    </a>
                                   </DataList>";
            const string Data          = "<DataList></DataList>";
            var          dataListModel = new DataListModel();
            var          converter     = new DataListConversionUtils();

            //------------Execute Test---------------------------
            dataListModel.Create(Data, Shape);
            var result = converter.CreateListToBindTo(dataListModel);

            //------------Assert Results-------------------------
            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual("", dataListModel.ComplexObjects[0].Description);
            Assert.AreEqual("Country", result[0].DisplayValue);
            Assert.AreEqual("@a", result[1].DisplayValue);
            Assert.IsTrue(result[1].IsObject);
            Assert.IsFalse(result[1].CanHaveMutipleRows);
        }
예제 #2
0
        public void DataListModel_Create_PayLoadWithComplexObjectsArray_ShouldHaveComplexObjectItems()
        {
            //------------Setup for test--------------------------
            const string Data = @"<DataList>
	                                <Food Description="""" IsEditable=""True"" IsJson=""True"" IsArray=""False"" ColumnIODirection=""Output"" >	
		                                <FoodName Description="""" IsEditable=""True"" IsJson=""True"" IsArray=""False"" ColumnIODirection=""None"" />
	                                </Food>
                                </DataList>";

            const string Shape         = @"<DataList>
                                  <Food Description="""" IsEditable=""True"" IsJson=""True"" IsArray=""False"" ColumnIODirection=""Output"" >
                                    <FoodName Description="""" IsEditable=""True"" IsJson=""True"" IsArray=""False"" ColumnIODirection=""None"" />
                                  </Food>
                                </DataList>";
            var          dataListModel = new DataListModel();
            var          converter     = new DataListConversionUtils();

            //------------Execute Test---------------------------
            dataListModel.Create(Data, Shape);
            var result = converter.GetOutputs(dataListModel);

            //------------Assert Results-------------------------
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("", dataListModel.ComplexObjects[0].Description);
            Assert.AreEqual("@Food", result[0].DisplayValue);
            Assert.IsTrue(result[0].IsObject);
            Assert.IsFalse(result[0].CanHaveMutipleRows);
        }
예제 #3
0
        public WorkflowInputDataViewModel(IServiceDebugInfoModel input, Guid sessionId)
        {
            VerifyArgument.IsNotNull(@"input", input);
            CanDebug         = true;
            CanViewInBrowser = true;

            DebugTo = new DebugTO
            {
                DataList = !string.IsNullOrEmpty(input.ResourceModel.DataList)
                               ? input.ResourceModel.DataList
                               : @"<DataList></DataList>",
                ServiceName    = input.ResourceModel.ResourceName,
                WorkflowID     = input.ResourceModel.ResourceName,
                WorkflowXaml   = string.Empty,
                XmlData        = input.ServiceInputData,
                ResourceID     = input.ResourceModel.ID,
                ServerID       = input.ResourceModel.ServerID,
                RememberInputs = input.RememberInputs,
                SessionID      = sessionId
            };

            if (input.DebugModeSetting == DebugMode.DebugInteractive)
            {
                DebugTo.IsDebugMode = true;
            }

            _resourceModel = input.ResourceModel;
            // ReSharper disable DoNotCallOverridableMethodsInConstructor
            DisplayName = @"Debug input data";
            // ReSharper restore DoNotCallOverridableMethodsInConstructor
            _dataListConversionUtils = new DataListConversionUtils();
            _popupController         = CustomContainer.Get <IPopupController>();
        }
예제 #4
0
        public void DataListConversionUtilTest_CreateListToBindTo_WhenScalarHasNoneMapping_ExpectCollectionWithNoItems()

        {
            //------------Setup for test--------------------------
            var converter = new DataListConversionUtils();

            const string Data  = "<DataList></DataList>";
            const string Shape = @"<DataList><scalar Description="""" IsEditable=""True"" ColumnIODirection=""None"" ></scalar></DataList>";

            //------------Execute Test---------------------------
            var bdl = new DataListModel();

            bdl.Create(Data, Shape);
            var result = converter.CreateListToBindTo(bdl);

            //------------Assert Results-------------------------
            Assert.AreEqual(0, result.Count);
        }
예제 #5
0
        public void DataListModel_Create_PayLoadWithComplexObjects_ShouldHaveComplexObjectItems()
        {
            //------------Setup for test--------------------------
            const string Data          = "<DataList></DataList>";
            var          dataListModel = new DataListModel();
            var          converter     = new DataListConversionUtils();

            //------------Execute Test---------------------------
            dataListModel.Create(Data, Shape);
            var result = converter.CreateListToBindTo(dataListModel);

            //------------Assert Results-------------------------
            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual("", dataListModel.ComplexObjects[0].Description);
            Assert.AreEqual("Country", result[0].DisplayValue);
            Assert.AreEqual("@Person", result[1].DisplayValue);
            Assert.IsTrue(result[1].IsObject);
        }
        // ReSharper disable InconsistentNaming
        public void DataListConversionUtilTest_CreateListToBindTo_WhenScalarHasInputMapping_ExpectCollectionWithOneItem()
        // ReSharper restore InconsistentNaming
        {
            //------------Setup for test--------------------------
            var converter = new DataListConversionUtils();

            const string Data  = "<DataList></DataList>";
            const string Shape = @"<DataList><scalar Description="""" IsEditable=""True"" ColumnIODirection=""Input"" ></scalar></DataList>";

            //------------Execute Test---------------------------
            var bdl = new DataListModel();

            bdl.Create(Data, Shape);
            var result = converter.CreateListToBindTo(bdl);

            //------------Assert Results-------------------------
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("scalar", result[0].Field);
        }
예제 #7
0
        public void DataListConversionUtilTest_CreateListToBindTo_WhenColumnHasInputMapping_ExpectCollectionWithOneItem()

        {
            //------------Setup for test--------------------------
            var converter = new DataListConversionUtils();

            const string Data  = "<DataList></DataList>";
            const string Shape = @"<DataList><rec Description="""" IsEditable=""True"" ColumnIODirection=""None"" ><a Description="""" IsEditable=""True"" ColumnIODirection=""Input"" /><b Description="""" IsEditable=""True"" ColumnIODirection=""None"" /></rec></DataList>";

            //------------Execute Test---------------------------
            var bdl = new DataListModel();

            bdl.Create(Data, Shape);
            var result = converter.CreateListToBindTo(bdl);

            //------------Assert Results-------------------------
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("rec", result[0].Recordset);
            Assert.AreEqual("a", result[0].Field);
        }
예제 #8
0
        // ReSharper disable InconsistentNaming
        public void DataListConversionUtilTest_CreateListToBindTo_WhenScalarHasNoneMapping_ExpectCollectionWithNoItems()
        // ReSharper restore InconsistentNaming
        {
            //------------Setup for test--------------------------
            var           converter = new DataListConversionUtils();
            var           compiler  = DataListFactory.CreateDataListCompiler();
            ErrorResultTO errors;

            const string Data  = "<DataList></DataList>";
            const string Shape = @"<DataList><scalar Description="""" IsEditable=""True"" ColumnIODirection=""None"" ></scalar></DataList>";

            //------------Execute Test---------------------------
            var dlId = compiler.ConvertTo(DataListFormat.CreateFormat(GlobalConstants._Studio_Debug_XML), Data.ToStringBuilder(), Shape.ToStringBuilder(), out errors);
            var bdl  = compiler.FetchBinaryDataList(dlId, out errors);

            var result = converter.CreateListToBindTo(bdl);

            //------------Assert Results-------------------------
            Assert.AreEqual(0, result.Count);
        }
 public ServiceTestCommandHandlerModel()
 {
     DataList = new DataListModel();
     _dataListConversionUtils = new DataListConversionUtils();
 }
        public void DataListConversionUtils_CreateListToBindTo_GetInputs()
        {
            var scalarListOne = new List <IScalar>
            {
                new Scalar {
                    Name = "[[a]]", Value = "1", IODirection = enDev2ColumnArgumentDirection.Input
                },
                new Scalar {
                    Name = "[[b]]", Value = "2", IODirection = enDev2ColumnArgumentDirection.Both
                }
            };

            var scalarListTwo = new List <IScalar>
            {
                new Scalar {
                    Name = "[[a]]", Value = "1", IODirection = enDev2ColumnArgumentDirection.Input
                },
                new Scalar {
                    Name = "[[b]]", Value = "2", IODirection = enDev2ColumnArgumentDirection.Both
                }
            };

            var recSetColOne = new Dictionary <int, List <IScalar> > {
                { 1, scalarListOne }
            };
            var recSetColTwo = new Dictionary <int, List <IScalar> > {
                { 2, scalarListTwo }
            };

            var recordSetList = new List <IRecordSet>
            {
                new RecordSet {
                    Name = "[[rec().a]]", Columns = recSetColOne, Value = "1", IODirection = enDev2ColumnArgumentDirection.Input
                },
                new RecordSet {
                    Name = "[[rec().b]]", Columns = recSetColTwo, Value = "2", IODirection = enDev2ColumnArgumentDirection.Both
                }
            };

            var complexObjectsList = new List <IComplexObject>
            {
                new ComplexObject {
                    Name = "@item", Value = "1", IODirection = enDev2ColumnArgumentDirection.Input
                },
                new ComplexObject {
                    Name = "@newItem", Value = "2", IODirection = enDev2ColumnArgumentDirection.Both
                }
            };

            var mockDataListModel = new Mock <IDataListModel>();

            mockDataListModel.Setup(dataListModel => dataListModel.Scalars).Returns(scalarListOne);
            mockDataListModel.Setup(dataListModel => dataListModel.RecordSets).Returns(recordSetList);
            mockDataListModel.Setup(dataListModel => dataListModel.ComplexObjects).Returns(complexObjectsList);

            var dataListConversionUtils = new DataListConversionUtils();

            var listItems = dataListConversionUtils.CreateListToBindTo(mockDataListModel.Object);

            Assert.AreEqual(8, listItems.Count);

            Assert.AreEqual("[[a]]", listItems[0].DisplayValue);
            Assert.AreEqual("[[a]]", listItems[0].Field);
            Assert.AreEqual("1", listItems[0].Value);
            Assert.IsNull(listItems[0].Index);
            Assert.IsFalse(listItems[0].IsObject);
            Assert.IsNull(listItems[0].Recordset);

            Assert.AreEqual("[[b]]", listItems[1].DisplayValue);
            Assert.AreEqual("[[b]]", listItems[1].Field);
            Assert.AreEqual("2", listItems[1].Value);
            Assert.IsNull(listItems[1].Index);
            Assert.IsFalse(listItems[1].IsObject);
            Assert.IsNull(listItems[1].Recordset);

            Assert.AreEqual("[[rec().a]](1).[[a]]", listItems[2].DisplayValue);
            Assert.AreEqual("[[a]]", listItems[2].Field);
            Assert.AreEqual("1", listItems[2].Value);
            Assert.AreEqual("1", listItems[2].Index);
            Assert.IsFalse(listItems[2].IsObject);
            Assert.AreEqual("[[rec().a]]", listItems[2].Recordset);

            Assert.AreEqual("[[rec().a]](1).[[b]]", listItems[3].DisplayValue);
            Assert.AreEqual("[[b]]", listItems[3].Field);
            Assert.AreEqual("2", listItems[3].Value);
            Assert.AreEqual("1", listItems[3].Index);
            Assert.IsFalse(listItems[3].IsObject);
            Assert.AreEqual("[[rec().a]]", listItems[3].Recordset);

            Assert.AreEqual("[[rec().b]](2).[[a]]", listItems[4].DisplayValue);
            Assert.AreEqual("[[a]]", listItems[4].Field);
            Assert.AreEqual("1", listItems[4].Value);
            Assert.AreEqual("2", listItems[4].Index);
            Assert.IsFalse(listItems[4].IsObject);
            Assert.AreEqual("[[rec().b]]", listItems[4].Recordset);

            Assert.AreEqual("[[rec().b]](2).[[b]]", listItems[5].DisplayValue);
            Assert.AreEqual("[[b]]", listItems[5].Field);
            Assert.AreEqual("2", listItems[5].Value);
            Assert.AreEqual("2", listItems[5].Index);
            Assert.IsFalse(listItems[5].IsObject);
            Assert.AreEqual("[[rec().b]]", listItems[5].Recordset);

            Assert.AreEqual("@item", listItems[6].DisplayValue);
            Assert.AreEqual("item", listItems[6].Field);
            Assert.AreEqual("1", listItems[6].Value);
            Assert.IsNull(listItems[6].Index);
            Assert.IsTrue(listItems[6].IsObject);
            Assert.IsNull(listItems[6].Recordset);

            Assert.AreEqual("@newItem", listItems[7].DisplayValue);
            Assert.AreEqual("newItem", listItems[7].Field);
            Assert.AreEqual("2", listItems[7].Value);
            Assert.IsNull(listItems[7].Index);
            Assert.IsTrue(listItems[7].IsObject);
            Assert.IsNull(listItems[7].Recordset);
        }