Пример #1
0
        public void Test_LatestUpdaterIsUsed()
        {
            ToolkitDataUnitOfWork unit       = new ToolkitDataUnitOfWork(this.Context, this.telemetryContext, new AssemblyStreamVersionReader());
            UpdatersController    controller = new UpdatersController(unit, new Mock <IFileSaver>().Object, new Mock <IFileRetriever>().Object);
            var request = new UpdateRequest(telemetryKey: this.TestProgramTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false, updaterVersion: "1.1"
                                            , toolkitVersion: "0.2.0");

            UpdateResponse result = controller.UpdateCheck(request).GetAwaiter().GetResult();

            Assert.AreEqual(0, result.UpdatePackages.Count);
            Assert.IsNull(result.Exception);
            request = new UpdateRequest(telemetryKey: this.TestProgramTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false, updaterVersion: "1.5"
                                        , toolkitVersion: "1.0");

            result = controller.UpdateCheck(request).GetAwaiter().GetResult();
            Assert.AreEqual(0, result.UpdatePackages.Count);
            Assert.IsNull(result.Exception);

            request = new UpdateRequest(telemetryKey: this.TestProgramTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false, updaterVersion: "1.7"
                                        , toolkitVersion: "2.0");

            result = controller.UpdateCheck(request).GetAwaiter().GetResult();

            Assert.IsNull(result.Exception);
            Assert.AreEqual(0, result.UpdatePackages.Count);
        }
Пример #2
0
        public void Test_LatestUpdaterIsNotCompatible_BreakingChanges()
        {
            ToolkitDataUnitOfWork unit       = new ToolkitDataUnitOfWork(this.Context, this.telemetryContext, versionReader: new AssemblyStreamVersionReader());
            UpdatersController    controller = new UpdatersController(work: unit, fileSaver: new Mock <IFileSaver>().Object
                                                                      , fileRetriever: new Mock <IFileRetriever>().Object);
            var request = new UpdateRequest(telemetryKey: this.TestProgramTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false, updaterVersion: "1.0"
                                            , toolkitVersion: "0.2.0");

            UpdateResponse result = controller.UpdateCheck(request).GetAwaiter().GetResult();

            Assert.AreEqual(expected: 0, actual: result.UpdatePackages.Count);
            request = new UpdateRequest(telemetryKey: this.TestProgramTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false, updaterVersion: "1.1.0"
                                        , toolkitVersion: "0.9.0");

            result = controller.UpdateCheck(request).GetAwaiter().GetResult();

            Assert.AreEqual(expected: "1.5.0", actual: result.UpdatePackages.Single().Version);
        }
Пример #3
0
        public void Test_UpdaterChange()
        {
            ToolkitDataUnitOfWork unit       = new ToolkitDataUnitOfWork(this.Context, this.telemetryContext, this.assemblyStreamVersionReader);
            UpdatersController    controller = new UpdatersController(unit, new Mock <IFileSaver>().Object, new Mock <IFileRetriever>().Object);
            var request = new UpdateRequest(telemetryKey: this.ProgramWhichChangesUpdaterTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false
                                            , updaterVersion: "1.0", toolkitVersion: "1.3.0");

            UpdateResponse result = controller.UpdateCheck(request).GetAwaiter().GetResult();

            Assert.AreEqual("1.6.0", result.UpdatePackages.Single().Version);
            this.programWhichChangesUpdater.Updater = unit.UpdaterRepository.GetUpdater("UltraNewest").GetAwaiter().GetResult();
            unit.CompleteAsync().GetAwaiter().GetResult();
            request = new UpdateRequest(telemetryKey: this.ProgramWhichChangesUpdaterTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false
                                        , updaterVersion: "1.0", toolkitVersion: "1.3.0");

            result = controller.UpdateCheck(request).GetAwaiter().GetResult();
            Assert.AreEqual("9.8.5", result.UpdatePackages.Single().Version);
        }
Пример #4
0
        public void Test_LatestUpdaterIsCompatible()
        {
            ToolkitDataUnitOfWork unit       = new ToolkitDataUnitOfWork(this.Context, this.telemetryContext, this.assemblyStreamVersionReader);
            UpdatersController    controller = new UpdatersController(unit, new Mock <IFileSaver>().Object, new Mock <IFileRetriever>().Object);
            var request = new UpdateRequest(telemetryKey: this.TestProgramTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false, updaterVersion: "1.0"
                                            , toolkitVersion: "1.3.0");

            UpdateResponse result = controller.UpdateCheck(request).GetAwaiter().GetResult();

            Assert.AreEqual("1.6.0", result.UpdatePackages.Single().Version);
            Assert.AreEqual($"api/v1/updaters/{result.UpdatePackages.Single().PublicId}", result.UpdatePackages.Single().DownloadUrl);

            request = new UpdateRequest(telemetryKey: this.TestProgramWithDifferentUpdaterTelemetryKey, programVersion: new VersionData("0.0", ""), userId: this.User1Guid, acceptBeta: false
                                        , updaterVersion: "1.0", toolkitVersion: "1.3.0");

            result = controller.UpdateCheck(request).GetAwaiter().GetResult();
            Assert.AreEqual("1.6.5", result.UpdatePackages.Single().Version);
            Assert.AreNotEqual(Guid.Empty, result.UpdatePackages[0].PublicId);
            Assert.AreEqual($"api/v1/updaters/{result.UpdatePackages[0].PublicId}", result.UpdatePackages[0].DownloadUrl);
        }
Пример #5
0
        public void Test_MissingMinimumToolkitInfo()
        {
            ToolkitDataUnitOfWork unit = new ToolkitDataUnitOfWork(this.Context, this.telemetryContext, this.assemblyStreamVersionReader);
            var defaultUpdater         = unit.UpdaterRepository.GetUpdater(DefaultToolkitNames.UpdaterInternalName).GetAwaiter().GetResult();

            // assert that empty min version does not break the query
            unit.UpdaterRepository.StorePackageAsync(defaultUpdater, "", GenerateStream("2.1.8.5"), this.saver).GetAwaiter().GetResult();
            unit.CompleteAsync().GetAwaiter().GetResult();

            UpdatersController controller = new UpdatersController(unit, new Mock <IFileSaver>().Object, new Mock <IFileRetriever>().Object);
            var request = new UpdateRequest(telemetryKey: this.TestProgram2TelemetryKey, programVersion: new VersionData("0.0", ""),
                                            userId: this.User1Guid, acceptBeta: false,
                                            updaterVersion: "1.0"
                                            , toolkitVersion: "1.3.0");

            UpdateResponse result = controller.UpdateCheck(request).GetAwaiter().GetResult();

            Assert.AreEqual("2.1.8.5", result.UpdatePackages.Single().Version);
            Assert.IsNull(result.Exception);
        }