public void UnloadProjectWithoutCurrentProject()
        {
            var service = new Mock <IUserInterfaceService>();
            var facade  = new ScriptBackEndProjectHub(new ProjectHub(service.Object));

            Assert.Throws <CannotUnloadProjectException>(() => facade.UnloadProject());
        }
        public void UnloadProject()
        {
            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());
                });
            }

            var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object));

            facade.NewProject();
            Assert.IsTrue(facade.HasActiveProject());

            service.Setup(s => s.Invoke(It.IsAny <CommandId>(), It.IsAny <ICommandContext>()))
            .Callback <CommandId, ICommandContext>(
                (id, context) =>
            {
                Assert.IsAssignableFrom <UnloadProjectContext>(context);
            })
            .Verifiable();

            facade.UnloadProject();
            Assert.IsFalse(facade.HasActiveProject());
            service.Verify(s => s.Invoke(It.IsAny <CommandId>(), It.IsAny <UnloadProjectContext>()), Times.Exactly(1));
        }
예제 #3
0
 /// <summary>
 /// Unloads the current project.
 /// </summary>
 public void UnloadProject()
 {
     m_Projects.UnloadProject();
 }
 public void UnloadProjectWithoutCurrentProject()
 {
     var service = new Mock<IUserInterfaceService>();
     var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object));
     Assert.Throws<CannotUnloadProjectException>(() => facade.UnloadProject());
 }
        public void UnloadProject()
        {
            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());
                        });
            }

            var facade = new ScriptBackEndProjectHub(new ProjectHub(service.Object));
            facade.NewProject();
            Assert.IsTrue(facade.HasActiveProject());

            service.Setup(s => s.Invoke(It.IsAny<CommandId>(), It.IsAny<ICommandContext>()))
                .Callback<CommandId, ICommandContext>(
                    (id, context) =>
                    {
                        Assert.IsAssignableFrom<UnloadProjectContext>(context);
                    })
                .Verifiable();

            facade.UnloadProject();
            Assert.IsFalse(facade.HasActiveProject());
            service.Verify(s => s.Invoke(It.IsAny<CommandId>(), It.IsAny<UnloadProjectContext>()), Times.Exactly(1));
        }