public void CheckDefaultDataItemRoles() { var model = new SimplerModel(); Assert.AreEqual(3, model.DataItems.Where(di => di.Role == DataItemRole.Input).Count()); Assert.AreEqual(1, model.DataItems.Where(di => di.Role == DataItemRole.None).Count()); }
public void TestSequenceLinkFirstTargetThenSource() { string result = ""; SimplerModel sourceModel = new SimplerModel { Name = "source" }; sourceModel.Executing += (s, e) => result += ((SimplerModel)s).Name; SimplerModel targetModel = new SimplerModel { Name = "target" }; targetModel.Executing += (s, e) => result += ((SimplerModel)s).Name; IDataItem sourceInput = new DataItem { Name = "SI", Value = new object(), Role = DataItemRole.Input }; IDataItem sourceOutput = new DataItem { Name = "SO", Value = new object(), Role = DataItemRole.Output }; IDataItem targetInput = new DataItem { Name = "TI", Value = new object(), Role = DataItemRole.Input }; IDataItem targetOutput = new DataItem { Name = "TO", Value = new object(), Role = DataItemRole.Output }; sourceModel.DataItems.Add(sourceInput); sourceModel.DataItems.Add(sourceOutput); targetModel.DataItems.Add(targetInput); targetModel.DataItems.Add(targetOutput); var compositeModel = new CompositeModel { Name = "composite model", Models = { sourceModel, targetModel } }; sourceInput.LinkTo(targetOutput); compositeModel.Initialize(); compositeModel.Execute(); Assert.AreEqual("targetsource", result); }
public void OnInputDataChangedIsCalledOnceParameterChanges() { //should get two property changes. one for parameter.Value and one for ProgressStart var model = new SimplerModel(); Assert.AreEqual(0, model.OnInputDataChangedCallCount); ((Parameter<DateTime>) model.DataItems[0].Value).Value = DateTime.Now; Assert.AreEqual(1, model.OnInputDataChangedCallCount); }
public void OnInputDataChangedIsCalledOnceWhenUnLinkingInputDataItems() { //setup a sourceitem connected to a model var sourceItem = new DataItem { Value = new Parameter<int>() }; var model = new SimplerModel(); model.DataItems[0].LinkTo(sourceItem); //reset call counts model.OnInputDataChangedCallCount = 0; //unlink model.DataItems[0].Unlink(); Assert.AreEqual(1, model.OnInputDataChangedCallCount); }
public void OnInputDataChangedIsCalledOnceWhenLinkingInputDataItems() { //setup a sourceitem and a model var sourceItem = new DataItem { Value = new Parameter<int>() }; var model = new SimplerModel(); //connect the model to the sourceitem model.DataItems[0].LinkTo(sourceItem); Assert.AreEqual(1, model.OnInputDataChangedCallCount); }
public void GetAllItemsRecursive() { SimplerModel model = new SimplerModel(); var dataItem = new DataItem(); model.DataItems.Add(dataItem); var items = model.GetAllItemsRecursive().ToArray(); Assert.AreEqual(new object[] { model.DataItems[0].Value, model.DataItems[0], model.DataItems[1].Value, model.DataItems[1], model.DataItems[2].Value, model.DataItems[2], model.DataItems[3].Value, model.DataItems[3], dataItem, model }, model.GetAllItemsRecursive().ToArray()); }
public void GetAllItemsRecursiveShouldReturnModels() { var compositeModel = new CompositeModel(); var model = new SimplerModel(); compositeModel.Models.Add(model); IEnumerable<object> enumerable = compositeModel.GetAllItemsRecursive(); Assert.IsTrue(enumerable.Contains(model)); Assert.AreEqual( 1 + compositeModel.DataItems.Count*2 +model.GetAllItemsRecursive().Count(), enumerable.Count()); }
private static Project Create17ItemsProjectTree() { // RootFolder // |-DataItem1 // |-DataItem1Value // |-Folder 1 // |-DataItemSet1 // |-DataItem2 // |-string // |-Model // |-DataItem3 // |-StartTime // |-StartTimeValue // |-StopTime // |-StopTimeValue // |-CurrentTime // |-CurrentTimeValue // |-TimeStep // |-TimeStepValue Project p = new Project(); var folder = new Folder("folder1"); p.RootFolder.Items.Add(new DataItem { Value = "dataItem1Value" }); var set = new DataItemSet("dataItemSet1"); var dataItem2 = new DataItem { Name = "DataItem2" }; dataItem2.Value = "string"; set.Add(dataItem2); //TODO : replace simplermodel with a mock/stubbed object SimplerModel model = new SimplerModel(); model.DataItems.Add(new DataItem() { Name = "DataItem3" }); folder.Items.Add(set); p.RootFolder.Add(folder); p.RootFolder.Add(model); return p; }
public void GetItemsRecursiveShouldReturnModelsContainedByCompositeMOdel() { var model = new CompositeModel(); var model1 = new SimplerModel(); model.Models.Add(model1); Project project = new Project(); project.RootFolder.Add(model); Assert.IsTrue(project.GetAllItemsRecursive().Contains(model1)); }
public void OnInputDataChangedIsCalledTwiceWhenChangingLinkTo() { //this is unwanted behaviour since we only need one notification actually //but i see no simple way of detecting unlink/link without introducing extra complexity //now is chosen to see the change as two separate changes. //setup a sourceitem connected to a model var sourceItem = new DataItem { Value = new Parameter<int>() }; var model = new SimplerModel(); model.DataItems[0].LinkTo(sourceItem); //reset call count model.OnInputDataChangedCallCount = 0; //link to other item var otherItem = new DataItem(); model.DataItems[0].LinkTo(otherItem); Assert.AreEqual(2, model.OnInputDataChangedCallCount); }
public void OnInputDataChangedIsCalledWhenTheValueOfADataItemChanges() { var parameter = new Parameter<int>(); var sourceItem = new DataItem { Value = parameter }; var model = new SimplerModel(); model.DataItems[0].LinkTo(sourceItem); //reset call count model.OnInputDataChangedCallCount = 0; //action..set a value parameter.Value = 2; Assert.AreEqual(1, model.OnInputDataChangedCallCount); }