public void UpdatesDataTableListItem()
        {
            _engine         = new AutomationEngineInstance(null);
            _updateListItem = new UpdateListItemCommand();

            List <OBDataTable> inputList = new List <OBDataTable>();
            OBDataTable        item1     = new OBDataTable();

            item1.Columns.Add("d1col");
            OBDataTable item2 = new OBDataTable();

            item2.Columns.Add("d2col");
            inputList.Add(item1);
            inputList.Add(item2);
            string      index   = "0";
            OBDataTable newitem = new OBDataTable();

            newitem.Columns.Add("d3col");

            VariableMethods.CreateTestVariable(inputList, _engine, "inputList", typeof(List <>));
            VariableMethods.CreateTestVariable(index, _engine, "index", typeof(string));
            VariableMethods.CreateTestVariable(newitem, _engine, "newitem", typeof(OBDataTable));

            _updateListItem.v_ListName  = "{inputList}";
            _updateListItem.v_ListIndex = "{index}";
            _updateListItem.v_ListItem  = "{newitem}";

            _updateListItem.RunCommand(_engine);

            List <OBDataTable> outputList = (List <OBDataTable>) "{inputList}".ConvertUserVariableToObject(_engine, typeof(List <>));

            Assert.Equal(newitem, outputList[0]);
        }
        public void UpdatesStringListItem()
        {
            _engine         = new AutomationEngineInstance(null);
            _updateListItem = new UpdateListItemCommand();

            List <string> inputList = new List <string>();

            inputList.Add("item1");
            inputList.Add("item2");
            string index = "0";
            string item  = "item3";

            VariableMethods.CreateTestVariable(inputList, _engine, "inputList", typeof(List <>));
            VariableMethods.CreateTestVariable(index, _engine, "index", typeof(string));
            VariableMethods.CreateTestVariable(item, _engine, "item", typeof(string));

            _updateListItem.v_ListName  = "{inputList}";
            _updateListItem.v_ListIndex = "{index}";
            _updateListItem.v_ListItem  = "{item}";

            _updateListItem.RunCommand(_engine);

            List <string> outputList = (List <string>) "{inputList}".ConvertUserVariableToObject(_engine, typeof(List <>));

            Assert.Equal("item3", outputList[0]);
        }
        public void HandlesInvalidListItem()
        {
            _engine         = new AutomationEngineInstance(null);
            _updateListItem = new UpdateListItemCommand();

            List <OBDataTable> inputList = new List <OBDataTable>();
            OBDataTable        item1     = new OBDataTable();
            string             newItem   = "item2";

            inputList.Add(item1);
            string index = "0";

            VariableMethods.CreateTestVariable(inputList, _engine, "inputList", typeof(List <>));
            VariableMethods.CreateTestVariable(index, _engine, "index", typeof(string));
            VariableMethods.CreateTestVariable(newItem, _engine, "item", typeof(string));

            _updateListItem.v_ListName  = "{inputList}";
            _updateListItem.v_ListIndex = "{index}";
            _updateListItem.v_ListItem  = "{item}";

            Assert.Throws <Exception>(() => _updateListItem.RunCommand(_engine));
        }