public async void CheckForUpdate_given_multiple_releases_returns_new_update()
        {
            var currentVersion   = "v5.5.5";
            var returnVersionNew = "v6.6.6";
            var returnVersionOld = "v4.4.4";

            var mock      = new Mock <ISource <GithubReleases> >();
            var returnVal = new GithubReleases {
                Releases = new List <GithubRelease> {
                    new GithubRelease {
                        Tag_name = returnVersionOld
                    }, new GithubRelease {
                        Tag_name = returnVersionNew
                    }
                }
            };

            mock.Setup(m => m.GetContent(null)).ReturnsAsync(returnVal);
            var logic = new UpdateChecker(mock.Object);

            logic.Settings = CreateSettings(currentVersion);

            var result = await logic.CheckForUpdate();

            Assert.True(result.Item1);
            Assert.Equal(returnVersionNew, result.Item2);
        }
        private static UpdateChecker SingleReleaseSetup(string currentVersion, string returnVersion)
        {
            var mock      = new Mock <ISource <GithubReleases> >();
            var returnVal = new GithubReleases {
                Releases = new List <GithubRelease> {
                    new GithubRelease {
                        Tag_name = returnVersion
                    }
                }
            };

            mock.Setup(m => m.GetContent(null)).ReturnsAsync(returnVal);
            var logic = new UpdateChecker(mock.Object);

            logic.Settings = CreateSettings(currentVersion);

            return(logic);
        }
        public async void CheckForUpdate_given_no_releases_returns_no_update()
        {
            var currentVersion = "v5.5.5";

            var mock      = new Mock <ISource <GithubReleases> >();
            var returnVal = new GithubReleases {
                Releases = new List <GithubRelease>()
            };

            mock.Setup(m => m.GetContent(null)).ReturnsAsync(returnVal);
            var logic = new UpdateChecker(mock.Object);

            logic.Settings = CreateSettings(currentVersion);

            var result = await logic.CheckForUpdate();

            Assert.False(result.Item1);
        }