Ejemplo n.º 1
0
        public async Task QueryDelayBuildAction_ShouldNotRestoreOnBuild_ProjectUpToDateMark()
        {
            var lockService   = Mock.Of <INuGetLockService>();
            var settings      = Mock.Of <ISettings>();
            var restoreWorker = Mock.Of <ISolutionRestoreWorker>();
            var buildManager  = Mock.Of <IVsSolutionBuildManager3>();

            var buildAction = (uint)VSSOLNBUILDUPDATEFLAGS.SBF_OPERATION_BUILD + (uint)VSSOLNBUILDUPDATEFLAGS3.SBF_FLAGS_UPTODATE_CHECK;

            Mock.Get(settings)
            .Setup(x => x.GetValue("packageRestore", "automatic", false))
            .Returns(bool.TrueString);

            using (var handler = new SolutionRestoreBuildHandler(lockService, settings, restoreWorker, buildManager))
            {
                await _jtf.SwitchToMainThreadAsync();

                var result = await handler.RestoreAsync(buildAction, CancellationToken.None);

                Assert.True(result);
            }

            Mock.Get(restoreWorker)
            .Verify(x => x.ScheduleRestoreAsync(It.IsAny <SolutionRestoreRequest>(), It.IsAny <CancellationToken>()), Times.Never);
        }
Ejemplo n.º 2
0
        public async Task QueryDelayBuildAction_ShouldNotRestoreOnBuild_NoOps()
        {
            var settings       = Mock.Of <ISettings>();
            var restoreWorker  = Mock.Of <ISolutionRestoreWorker>();
            var buildManager   = Mock.Of <IVsSolutionBuildManager3>();
            var restoreChecker = Mock.Of <ISolutionRestoreChecker>();

            var buildAction = (uint)VSSOLNBUILDUPDATEFLAGS.SBF_OPERATION_BUILD;

            Mock.Get(settings)
            .Setup(x => x.GetSection("packageRestore"))
            .Returns(() => new VirtualSettingSection("packageRestore",
                                                     new AddItem("automatic", bool.FalseString)));

            using (var handler = new SolutionRestoreBuildHandler(settings, restoreWorker, buildManager, restoreChecker))
            {
                await _jtf.SwitchToMainThreadAsync();

                var result = await handler.RestoreAsync(buildAction, CancellationToken.None);

                Assert.True(result);
            }

            Mock.Get(restoreWorker)
            .Verify(x => x.ScheduleRestoreAsync(It.IsAny <SolutionRestoreRequest>(), It.IsAny <CancellationToken>()), Times.Never);
        }
Ejemplo n.º 3
0
        public async Task QueryDelayBuildAction_ShouldRestoreOnBuild()
        {
            var lockService   = Mock.Of <INuGetLockService>();
            var settings      = Mock.Of <ISettings>();
            var restoreWorker = Mock.Of <ISolutionRestoreWorker>();
            var buildManager  = Mock.Of <IVsSolutionBuildManager3>();

            var buildAction = (uint)VSSOLNBUILDUPDATEFLAGS.SBF_OPERATION_BUILD;

            Mock.Get(settings)
            .Setup(x => x.GetValue("packageRestore", "automatic", false))
            .Returns(bool.TrueString);
            Mock.Get(restoreWorker)
            .SetupGet(x => x.JoinableTaskFactory)
            .Returns(_jtf);
            Mock.Get(restoreWorker)
            .Setup(x => x.RestoreAsync(It.IsAny <SolutionRestoreRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(true);

            using (var handler = new SolutionRestoreBuildHandler(lockService, settings, restoreWorker, buildManager))
            {
                await _jtf.SwitchToMainThreadAsync();

                var result = await handler.RestoreAsync(buildAction, CancellationToken.None);

                Assert.True(result);
            }

            Mock.Get(restoreWorker)
            .Verify(x => x.RestoreAsync(It.IsAny <SolutionRestoreRequest>(), It.IsAny <CancellationToken>()), Times.Once);
        }
Ejemplo n.º 4
0
        public async Task QueryDelayBuildAction_CleanBuild()
        {
            var settings       = Mock.Of <ISettings>();
            var restoreWorker  = Mock.Of <ISolutionRestoreWorker>();
            var buildManager   = Mock.Of <IVsSolutionBuildManager3>();
            var restoreChecker = Mock.Of <ISolutionRestoreChecker>();
            var buildAction    = (uint)VSSOLNBUILDUPDATEFLAGS.SBF_OPERATION_CLEAN;

            using (var handler = new SolutionRestoreBuildHandler(settings, restoreWorker, buildManager, restoreChecker))
            {
                await _jtf.SwitchToMainThreadAsync();

                var result = await handler.RestoreAsync(buildAction, CancellationToken.None);

                Assert.True(result);
            }

            Mock.Get(restoreWorker)
            .Verify(x => x.CleanCacheAsync(), Times.Once);
            Mock.Get(restoreChecker)
            .Verify(x => x.CleanCache(), Times.Once);

            Mock.Get(restoreWorker)
            .Verify(x => x.ScheduleRestoreAsync(It.IsAny <SolutionRestoreRequest>(), It.IsAny <CancellationToken>()), Times.Never);
        }