public void ShouldBeAbleToUseCollectiontOverload() { var input1 = new VersionCheckDetailsItem() { Name = "Test", Version = "1.0", VersionRange = "1.0" }; var input2 = new VersionCheckDetailsItem() { Name = "Other", Version = "1.0", VersionRange = "1.0" }; var input = new VersionCheckDetails { Packages = new List <VersionCheckDetailsItem> { input1, input2 } }; var repository = new Mock <IReleaseQueryProvider>(); repository.Setup(x => x.SelectRelease("Test", "1.0")).Returns((ReleaseQueryItem)null).Verifiable(); repository.Setup(x => x.SelectRelease("Other", "1.0")).Returns((ReleaseQueryItem)null).Verifiable(); var service = new ReleaseQueryService(repository.Object); var result = service.GetReleaseInfo(input); Assert.Equal(2, result.Details.Count); Assert.True(result.Details.ContainsKey("Test")); Assert.True(result.Details.ContainsKey("Other")); Assert.False(result.HasNewer); repository.VerifyAll(); }
private object BuildModel(NameValueCollection queryString) { var stamp = queryString["stamp"]; var model = new VersionCheckDetails(); var items = new List <VersionCheckDetailsItem>(); if (queryString.AllKeys.Length > 0) { foreach (var token in queryString.AllKeys) { if (!_reservedKeys.ContainsKey(token)) { var item = new VersionCheckDetailsItem { Name = token }; ParseVersion(item, queryString[token]); items.Add(item); } } } model.Packages = items; model.Stamp = stamp; return(model); }
public ReleaseQueryInfo Index([System.Web.Http.ModelBinding.ModelBinder(typeof(VersionCheckDetailsApiModelBinderProvider))] VersionCheckDetails details, bool withDetails = false) { var service = PackageSettings.Settings.ReleaseQueryService; var result = service.GetReleaseInfo(details, withDetails); result.ViewLink = GenerateViewUri(Url.Request.RequestUri, result); return(result); }
public virtual ActionResult Update(VersionCheckDetails details, bool?withDetails) { var service = PackageSettings.Settings.ReleaseQueryService; var result = service.GetReleaseInfo(details, true); // Indicates how much data we want to show ViewBag.WithDetails = withDetails; return(View(MVC.Version.Install.Views.Update, MVC.Shared.Views._Simple, result)); }
public virtual ActionResult Index(VersionCheckDetails details) { if (!HttpContext.Request.Url.Query.Contains("..")) { var service = PackageSettings.Settings.ReleaseQueryService; var result = service.GetReleaseInfo(details, false); return(View(MVC.Version.Install.Views.Index, MVC.Shared.Views._Simple, result)); } return(Update(details, null)); }
public void ShoudlIndicateHasNewerWhenAnyPackageHasNewer() { var release = new ReleaseQueryItem { IsLatestVersion = false, Created = new DateTime(2012, 12, 12), Version = "1.0" }; var release1 = new ReleaseQueryItem { IsLatestVersion = true, Created = new DateTime(2012, 12, 13), Version = "1.1" }; var input1 = new VersionCheckDetailsItem() { Name = "Test", Version = "1.0", VersionRange = "1.0" }; var input2 = new VersionCheckDetailsItem() { Name = "Other", Version = "1.0", VersionRange = "1.0" }; var input = new VersionCheckDetails { Packages = new List <VersionCheckDetailsItem> { input1, input2 } }; var repository = new Mock <IReleaseQueryProvider>(); repository.Setup(x => x.SelectRelease("Test", "1.0")).Returns(release).Verifiable(); repository.Setup(x => x.SelectRelease("Other", "1.0")).Returns((ReleaseQueryItem)null).Verifiable(); repository.Setup(x => x.FindReleasesAfter("Test", "1.0")).Returns(new List <ReleaseQueryItem> { release1 }).Verifiable(); var service = new ReleaseQueryService(repository.Object); var result = service.GetReleaseInfo(input); Assert.Equal(2, result.Details.Count); Assert.True(result.Details.ContainsKey("Test")); Assert.True(result.Details["Test"].HasNewer); Assert.True(result.Details["Test"].HasResult); Assert.True(result.Details.ContainsKey("Other")); Assert.False(result.Details["Other"].HasNewer); Assert.False(result.Details["Other"].HasResult); Assert.True(result.HasNewer); repository.VerifyAll(); }
public ReleaseQueryInfo Index([System.Web.Http.ModelBinding.ModelBinder(typeof(VersionCheckDetailsApiModelBinderProvider))] VersionCheckDetails details, bool withDetails = false) { string userId = null; if (HttpContext.Current.Request.Cookies["ai_user"] == null) { userId = Guid.NewGuid().ToString(); var c = new HttpCookie("ai_user", userId + "|" + DateTime.Now.ToString("G")); c.Expires = DateTime.MaxValue; c.Path = "/"; HttpContext.Current.Response.Cookies.Set(c); } foreach (var package in details.Packages) { EventTelemetry evt = new EventTelemetry(); evt.Name = "Check " + package.Name; if (!string.IsNullOrEmpty(userId)) { evt.Context.User.Id = userId; } evt.Properties.Add("Package", package.Name); evt.Properties.Add("Version", package.Version); if (HttpContext.Current.Request.UrlReferrer != null) { evt.Properties.Add("urlReferrer", HttpContext.Current.Request.UrlReferrer.ToString()); } telemetry.TrackEvent(evt); } var service = PackageSettings.Settings.ReleaseQueryService; var result = service.GetReleaseInfo(details, withDetails); result.ViewLink = GenerateViewUri(Url.Request.RequestUri, result); return(result); }
public void ShoudlIndicateHasNewerWhenAnyPackageHasNewer() { var release = new ReleaseQueryItem { IsLatestVersion = false, Created = new DateTime(2012, 12, 12), Version = "1.0" }; var release1 = new ReleaseQueryItem { IsLatestVersion = true, Created = new DateTime(2012, 12, 13), Version = "1.1" }; var input1 = new VersionCheckDetailsItem() { Name = "Test", Version = "1.0", VersionRange = "1.0" }; var input2 = new VersionCheckDetailsItem() { Name = "Other", Version = "1.0", VersionRange = "1.0" }; var input = new VersionCheckDetails { Packages = new List<VersionCheckDetailsItem> { input1, input2 } }; var repository = new Mock<IReleaseQueryProvider>(); repository.Setup(x => x.SelectRelease("Test", "1.0")).Returns(release).Verifiable(); repository.Setup(x => x.SelectRelease("Other", "1.0")).Returns((ReleaseQueryItem)null).Verifiable(); repository.Setup(x => x.FindReleasesAfter("Test", "1.0")).Returns(new List<ReleaseQueryItem> { release1 }).Verifiable(); var service = new ReleaseQueryService(repository.Object); var result = service.GetReleaseInfo(input); Assert.Equal(2, result.Details.Count); Assert.True(result.Details.ContainsKey("Test")); Assert.True(result.Details["Test"].HasNewer); Assert.True(result.Details["Test"].HasResult); Assert.True(result.Details.ContainsKey("Other")); Assert.False(result.Details["Other"].HasNewer); Assert.False(result.Details["Other"].HasResult); Assert.True(result.HasNewer); repository.VerifyAll(); }
public void ShouldBeAbleToUseCollectiontOverload() { var input1 = new VersionCheckDetailsItem() { Name = "Test", Version = "1.0", VersionRange = "1.0" }; var input2 = new VersionCheckDetailsItem() { Name = "Other", Version = "1.0", VersionRange = "1.0" }; var input = new VersionCheckDetails {Packages = new List<VersionCheckDetailsItem> {input1, input2}}; var repository = new Mock<IReleaseQueryProvider>(); repository.Setup(x => x.SelectRelease("Test", "1.0")).Returns((ReleaseQueryItem)null).Verifiable(); repository.Setup(x => x.SelectRelease("Other", "1.0")).Returns((ReleaseQueryItem)null).Verifiable(); var service = new ReleaseQueryService(repository.Object); var result = service.GetReleaseInfo(input); Assert.Equal(2, result.Details.Count); Assert.True(result.Details.ContainsKey("Test")); Assert.True(result.Details.ContainsKey("Other")); Assert.False(result.HasNewer); repository.VerifyAll(); }