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); }
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); }
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); }
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); }
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); }