public void CreateNewProject() { var project = new Mock <IProject>(); var service = new Mock <IUserInterfaceService>(); { service.Setup(s => s.Contains(It.IsAny <CommandId>())) .Returns(true); service.Setup(s => s.Invoke(It.IsAny <CommandId>(), It.IsAny <ICommandContext>())) .Callback <CommandId, ICommandContext>( (id, context) => { CreateProjectContext createContext = context as CreateProjectContext; createContext.Result = Task <IProject> .Factory.StartNew( () => project.Object, new CancellationToken(), TaskCreationOptions.None, new CurrentThreadTaskScheduler()); }) .Verifiable(); } var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object)); facade.NewProject(); Assert.IsTrue(facade.HasActiveProject()); service.Verify(s => s.Invoke(It.IsAny <CommandId>(), It.IsAny <CreateProjectContext>()), Times.Exactly(1)); }
public void UnloadProjectWithoutCurrentProject() { var service = new Mock <IUserInterfaceService>(); var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object)); Assert.Throws <CannotUnloadProjectException>(() => facade.UnloadProject()); }
public void CreateNewProject() { var project = new Mock<IProject>(); var service = new Mock<IUserInterfaceService>(); { service.Setup(s => s.Contains(It.IsAny<CommandId>())) .Returns(true); service.Setup(s => s.Invoke(It.IsAny<CommandId>(), It.IsAny<ICommandContext>())) .Callback<CommandId, ICommandContext>( (id, context) => { CreateProjectContext createContext = context as CreateProjectContext; createContext.Result = Task<IProject>.Factory.StartNew( () => project.Object, new CancellationToken(), TaskCreationOptions.None, new CurrentThreadTaskScheduler()); }) .Verifiable(); } var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object)); facade.NewProject(); Assert.IsTrue(facade.HasActiveProject()); service.Verify(s => s.Invoke(It.IsAny<CommandId>(), It.IsAny<CreateProjectContext>()), Times.Exactly(1)); }
public void CreateNewProjectWithLoadingFailure() { var service = new Mock<IUserInterfaceService>(); { service.Setup(s => s.Contains(It.IsAny<CommandId>())) .Returns(true); service.Setup(s => s.Invoke(It.IsAny<CommandId>(), It.IsAny<ICommandContext>())) .Callback<CommandId, ICommandContext>( (id, context) => { CreateProjectContext createContext = context as CreateProjectContext; createContext.Result = null; }) .Verifiable(); } var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object)); Assert.Throws<FailedToCreateProjectException>(() => facade.NewProject()); service.Verify(s => s.Invoke(It.IsAny<CommandId>(), It.IsAny<CreateProjectContext>()), Times.Exactly(1)); }
/// <summary> /// Initializes a new instance of the <see cref="ScriptFrontEndProjectHub"/> class. /// </summary> /// <param name="projects">The object that handles all the project activities.</param> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="projects"/> is <see langword="null" />. /// </exception> public ScriptFrontEndProjectHub(ScriptBackEndProjectHub projects) { { Enforce.Argument(() => projects); } m_Projects = projects; { m_Projects.OnNewProjectLoaded += (s, e) => { m_Current = null; RaiseOnNewProjectLoaded(); }; m_Projects.OnProjectUnloaded += (s, e) => { m_Current = null; RaiseOnProjectUnloaded(); }; } }
public void CreateNewProjectWithLoadingFailure() { var service = new Mock <IUserInterfaceService>(); { service.Setup(s => s.Contains(It.IsAny <CommandId>())) .Returns(true); service.Setup(s => s.Invoke(It.IsAny <CommandId>(), It.IsAny <ICommandContext>())) .Callback <CommandId, ICommandContext>( (id, context) => { CreateProjectContext createContext = context as CreateProjectContext; createContext.Result = null; }) .Verifiable(); } var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object)); Assert.Throws <FailedToCreateProjectException>(() => facade.NewProject()); service.Verify(s => s.Invoke(It.IsAny <CommandId>(), It.IsAny <CreateProjectContext>()), Times.Exactly(1)); }
/// <summary> /// Initializes a new instance of the <see cref="ScriptHost"/> class. /// </summary> /// <param name="projects">The object that handles all the project related actions.</param> /// <param name="appdomainBuilder">The function that creates a new <see cref="AppDomain"/> with the given name.</param> /// <param name="scheduler">The scheduler that will be used to schedule tasks.</param> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="projects"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="appdomainBuilder"/> is <see langword="null" />. /// </exception> public ScriptHost( ILinkToProjects projects, Func<string, AppDomainPaths, AppDomain> appdomainBuilder, TaskScheduler scheduler = null) { { Enforce.Argument(() => projects); Enforce.Argument(() => appdomainBuilder); } m_Projects = new ScriptBackEndProjectHub(projects); m_AppDomainBuilder = appdomainBuilder; m_Scheduler = scheduler ?? TaskScheduler.Default; }
public void UnloadProjectWithoutCurrentProject() { var service = new Mock<IUserInterfaceService>(); var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object)); Assert.Throws<CannotUnloadProjectException>(() => facade.UnloadProject()); }