static void DebugOutputViewModel_Append_ContentStateType(StateType stateType, Type expectedType, bool isExpanded)
{
//------------Setup for test--------------------------
var envRepo = GetEnvironmentRepository();
var viewModel = new DebugOutputViewModel(new Mock<IEventPublisher>().Object, envRepo, new Mock<IDebugOutputFilterStrategy>().Object);
var content = new DebugState { DisplayName = "Content", ID = Guid.NewGuid(), StateType = stateType, ActivityType = ActivityType.Step, Message = "The message", SessionID = viewModel.SessionID };
//------------Execute Test---------------------------
viewModel.Append(content);
//------------Assert Results-------------------------
Assert.AreEqual(1, viewModel.ContentItemCount);
Assert.AreEqual(1, viewModel.RootItems.Count);
Assert.AreEqual(viewModel.RootItems[0].IsExpanded, isExpanded);
Assert.IsInstanceOfType(viewModel.RootItems[0], expectedType);
if(expectedType == typeof(DebugStringTreeViewItemViewModel))
{
Assert.AreEqual(0, viewModel.RootItems[0].Depth);
var viewContent = ((DebugStringTreeViewItemViewModel)viewModel.RootItems[0]).Content;
Assert.AreEqual(content.Message, viewContent);
}
else
{
Assert.IsTrue(viewModel.RootItems[0].Depth >= 0);
var viewContent = ((DebugStateTreeViewItemViewModel)viewModel.RootItems[0]).Content;
Assert.AreSame(content, viewContent);
}
}