private EventHandler <PresenterExecuteEventArgs> GenerateEventHandler(ContentUnit selectedCU, ContentUnit[] choices, IBlackboard blackboard) { return((object sender, PresenterExecuteEventArgs eventArgs) => { var presenterEventArgs = eventArgs as PresenterExecuteEventArgs; if (selectedCU != null) { Assert.Equal(selectedCU.Content[Text], presenterEventArgs.TextToDisplay); int numOfChoices = choices.Length; Assert.Equal(numOfChoices, presenterEventArgs.Choices.Length); foreach (ContentUnit choice in choices) { Assert.True(Array.Exists(presenterEventArgs.ChoicesToDisplay, element => element.Equals(choice.Content[Text]))); } } else { Assert.Equal("", presenterEventArgs.TextToDisplay); } // Iterate through each of the choices selecting it and confirming that the correct U_IDSelectRequest is added. IChoicePresenter_Old cp = (IChoicePresenter_Old)sender; for (uint i = 0; i < presenterEventArgs.ChoicesToDisplay.Length; i++) { cp.SelectChoice((ContentUnit[])presenterEventArgs.Choices, i); U_IDSelectRequest idSelectRequest = blackboard.LookupSingleton <U_IDSelectRequest>(); Assert.True(idSelectRequest.TargetContentUnitID.Equals(choices[i].Metadata[TargetContentUnitID])); blackboard.RemoveUnit(idSelectRequest); // Remove the U_IDSelect request before the next iteration. } }); }
/*public*/ void TestUpdateAgenda_Controller() { Controller_PublicUpdateAgenda controller = new Controller_PublicUpdateAgenda(); IBlackboard blackboard = new Blackboard(); KS_Old_ReactiveIDSelector ks = new KS_Old_ReactiveIDSelector(blackboard); controller.AddKnowledgeSource(ks); IUnit u = new U_IDSelectRequest("foo"); blackboard.AddUnit(u); Assert.Equal(0, controller.Agenda.Count); controller.UpdateAgenda(); Assert.Equal(1, controller.Agenda.Count); blackboard.RemoveUnit(u); controller.UpdateAgenda(); Assert.Equal(0, controller.Agenda.Count); }