Пример #1
0
        public Update()
        {
            InitializeComponent();
            new Task(() => {
                try {
                    AppVeyor Updater = new AppVeyor("Marcussacana", "Social-Savior", "Social Savior\\bin\\Social Savior.zip");
                    if (Updater.FinishUpdatePending())
                    {
                        SingleInstanceService.RequestQuit();
                    }

                    string Result = Updater.FinishUpdate();
                    if (Result != null)
                    {
                        Process.Start(Result);
                        Environment.Exit(0);
                    }

                    if (Updater.HaveUpdate())
                    {
                        Invoke(new MethodInvoker(() => { lblStatus.Text = "Updating..."; }));
                        Updater.Update();
                    }

                    Invoke(new MethodInvoker(Close));
                } catch (Exception ex) {
                    MessageBox.Show("Auto Updater Exception: \n" + ex.Message + "\n\n" + ex.StackTrace);

                    Invoke(new MethodInvoker(Close));
                }
            }).Start();
        }
Пример #2
0
        public void WriteIntegration_IncludeSourceInMessage()
        {
            // act
            MockHttpClientFactory httpClientFactory = GetHttpClientFactory();
            var buildServer = new AppVeyor(GetLogger(), GetEnvironment(), httpClientFactory);

            buildServer.ApplyParameters(true);

            var output = new StringBuilder();
            var writer = new StringWriter(output);

            Console.SetOut(writer);

            var issues = GetIssues();

            // arrange
            foreach (var issue in issues)
            {
                buildServer.WriteMessage(issue);
            }

            // assert
            Assert.Equal(5, httpClientFactory.HttpMessageHandler.Requests.Count);

            Assert.Equal(HttpMethod.Post, httpClientFactory.HttpMessageHandler.Requests[0].Item1.Method);
            Assert.Equal("http://*****:*****@"{""message"":""[Source4] Message5"",""category"":""information"",""fileName"":""D:\\Prog\\Github\\vika\\src\\NVika\\Program.cs"",""details"":""Message5 in D:\\Prog\\Github\\vika\\src\\NVika\\Program.cs on line ""}", httpClientFactory.HttpMessageHandler.Requests[4].Item2);

            Assert.Equal(string.Empty, _loggerOutput.ToString());
        }
Пример #3
0
        public void Name()
        {
            // act
            var buildServer = new AppVeyor(GetLogger(), GetEnvironment(), GetHttpClientFactory());

            // arrange
            var name = buildServer.Name;

            // assert
            Assert.Equal("AppVeyor", name);
        }
Пример #4
0
        public void CanApplyToCurrentContext_NotOnAppVeyor()
        {
            // act
            var buildServer = new AppVeyor(GetLogger(), GetEnvironment(false), GetHttpClientFactory());

            // arrange
            var result = buildServer.CanApplyToCurrentContext();

            // assert
            Assert.False(result);
        }
Пример #5
0
        public void CanApplyToCurrentContext_False()
        {
            // arrange
            var buildServer = new AppVeyor(GetEnvironment(false), GetWebClientFactory());

            // act
            var canApply = buildServer.CanApplyToCurrentContext();

            // assert
            Assert.False(canApply);
        }
Пример #6
0
        public void Branch_Should_Be_Empty_String_When_Enviornment_Variable_Does_Not_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_REPO_BRANCH", null);
            var appVeyor = new AppVeyor();

            // When
            var branch = appVeyor.Branch;

            // Then
            branch.Should().BeEmpty();
        }
Пример #7
0
        private UrlInfo AppVeyorUrlInfo(UrlInfo urlInfo)
        {
            string project          = urlInfo.Url.Split(':')[1];
            string branch           = "master";
            string artifactFileName = null;

            // we can use 'appveyor:example/project#Win32#develop'
            // to find an artifact which contains 'Win32'
            // in branch 'develop'
            if (urlInfo.Url.Contains("#"))
            {
                artifactFileName = urlInfo.Url.Split('#')[1];
                project          = project.Split('#')[0];

                if (urlInfo.Url.Split('#').Length > 2)
                {
                    branch = urlInfo.Url.Split('#')[2];
                }
            }

            using (AppVeyor appVeyor = new AppVeyor(project, branch))
            {
                Artifact[] artifacts = appVeyor.GetLatestArtifacts();
                Artifact   artifact  = null;

                // attempt to find artifact with filename
                foreach (Artifact a in artifacts)
                {
                    if (a.FileName.Contains(artifactFileName))
                    {
                        artifact = a;
                        break;
                    }
                }

                if (artifact == null)
                {
                    throw new Exception($"Cannot find artifact containing \"{artifactFileName}\" in the filename");
                }

                UrlInfo info = new UrlInfo()
                {
                    FileName = artifact.FileName,
                    FileSize = artifact.Size,
                    Url      = artifact.Url
                };

                // update urlInfo
                urlInfo = info;
            }

            return(urlInfo);
        }
Пример #8
0
        public void Build_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_JOB_ID", "Job 123");
            var appVeyor = new AppVeyor();

            // When
            var build = appVeyor.Build;

            // Then
            build.Should().Be("Job%20123");
        }
Пример #9
0
        public void Commit_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_REPO_COMMIT", "123");
            var appVeyor = new AppVeyor();

            // When
            var commit = appVeyor.Commit;

            // Then
            commit.Should().Be("123");
        }
Пример #10
0
        public void Commit_Should_Be_Empty_String_When_Enviornment_Variable_Does_Not_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_REPO_COMMIT", null);
            var appVeyor = new AppVeyor();

            // When
            var commit = appVeyor.Commit;

            // Then
            commit.Should().BeEmpty();
        }
Пример #11
0
        public void Pr_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER", "123");
            var appVeyor = new AppVeyor();

            // When
            var pr = appVeyor.Pr;

            // Then
            pr.Should().Be("123");
        }
Пример #12
0
        public void Slug_Should_Be_Empty_String_When_Enviornment_Variable_Does_Not_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_REPO_NAME", null);
            var appVeyor = new AppVeyor();

            // When
            var slug = appVeyor.Slug;

            // Then
            slug.Should().BeEmpty();
        }
Пример #13
0
        public void Slug_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_REPO_NAME", "foo/bar");
            var appVeyor = new AppVeyor();

            // When
            var slug = appVeyor.Slug;

            // Then
            slug.Should().Be("foo/bar");
        }
Пример #14
0
        public void Branch_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_REPO_BRANCH", "develop");
            var appVeyor = new AppVeyor();

            // When
            var branch = appVeyor.Branch;

            // Then
            branch.Should().Be("develop");
        }
Пример #15
0
        public void Build_Should_Be_Empty_String_When_Enviornment_Variable_Does_Not_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_JOB_ID", null);
            var appVeyor = new AppVeyor();

            // When
            var build = appVeyor.Build;

            // Then
            build.Should().BeEmpty();
        }
Пример #16
0
        public void Pr_Should_Be_Empty_String_When_Enviornment_Variable_Does_Not_Exits()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER", null);
            var appVeyor = new AppVeyor();

            // When
            var pr = appVeyor.Pr;

            // Then
            pr.Should().BeEmpty();
        }
Пример #17
0
        public void WriteIntegration_AppVeyorAPIError()
        {
            // act
            MockHttpClientFactory httpClientFactory = GetHttpClientFactory(HttpStatusCode.Forbidden);
            var buildServer = new AppVeyor(GetLogger(), GetEnvironment(), httpClientFactory);

            var issues = GetIssues();

            // arrange
            foreach (var issue in issues)
            {
                buildServer.WriteMessage(issue);
            }

            // assert
            Assert.Equal(5, httpClientFactory.HttpMessageHandler.Requests.Count);

            Assert.Equal(HttpMethod.Post, httpClientFactory.HttpMessageHandler.Requests[0].Item1.Method);
            Assert.Equal("http://*****:*****@"{""message"":""Message5"",""category"":""information"",""fileName"":""D:\\Prog\\Github\\vika\\src\\NVika\\Program.cs"",""details"":""Message5 in D:\\Prog\\Github\\vika\\src\\NVika\\Program.cs on line ""}", httpClientFactory.HttpMessageHandler.Requests[4].Item2);

            var logs = _loggerOutput.ToString();

            Assert.NotNull(logs);
            Assert.Contains("An error is occurred during the call to AppVeyor API: \"StatusCode: 403, ReasonPhrase: 'Forbidden', Version: 1.1, Content: <null>, Headers:", logs);
        }
Пример #18
0
        public void Detecter_Should_Be_False_When_AppVeyor_Enviornment_Variable_Or_Ci_Enviornment_Variable_Does_Not_Exit_And_Both_Are_Not_Equal_To_True(string appveyorData, string ciData)
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR", appveyorData);
            Environment.SetEnvironmentVariable("CI", ciData);
            var appVeyor = new AppVeyor();

            // When
            var detecter = appVeyor.Detecter;

            // Then
            detecter.Should().BeFalse();
        }
Пример #19
0
        public void Detecter_Should_Be_True_When_AppVeyor_Enviornment_Variable_And_Ci_Enviornment_Variable_Exit_And_Both_Are_Equal_To_True()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR", "True");
            Environment.SetEnvironmentVariable("CI", "True");
            var appVeyor = new AppVeyor();

            // When
            var detecter = appVeyor.Detecter;

            // Then
            detecter.Should().BeTrue();
        }
Пример #20
0
        public void Branch_Should_Be_Empty_String_When_Enviornment_Variable_Does_Not_Exits()
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH")).Returns(string.Empty);
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var branch = appVeyor.Branch;

            // Then
            branch.Should().BeEmpty();
        }
Пример #21
0
        public void Slug_Should_Be_Empty_String_When_Enviornment_Variable_Does_Not_Exits()
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR_REPO_NAME")).Returns(string.Empty);
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var slug = appVeyor.Slug;

            // Then
            slug.Should().BeEmpty();
        }
Пример #22
0
        public void Branch_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH")).Returns("develop");
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var branch = appVeyor.Branch;

            // Then
            branch.Should().Be("develop");
        }
Пример #23
0
        public void Build_Should_Be_Empty_String_When_Enviornment_Variable_Does_Not_Exits()
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR_JOB_ID")).Returns(string.Empty);
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var build = appVeyor.Build;

            // Then
            build.Should().BeEmpty();
        }
Пример #24
0
        public void Build_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR_JOB_ID")).Returns("Job 123");
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var build = appVeyor.Build;

            // Then
            build.Should().Be("Job%20123");
        }
Пример #25
0
        public void Slug_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR_REPO_NAME")).Returns("foo/bar");
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var slug = appVeyor.Slug;

            // Then
            slug.Should().Be("foo/bar");
        }
Пример #26
0
        public void Pr_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER")).Returns("123");
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var pr = appVeyor.Pr;

            // Then
            pr.Should().Be("123");
        }
Пример #27
0
        public void Commit_Should_Be_Set_When_Enviornment_Variable_Exits()
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR_REPO_COMMIT")).Returns("123");
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var commit = appVeyor.Commit;

            // Then
            commit.Should().Be("123");
        }
Пример #28
0
        public void Job_Should_Not_Be_Empty_String_When_Enviornment_Variables_Exit()
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_ACCOUNT_NAME", "foo");
            Environment.SetEnvironmentVariable("APPVEYOR_PROJECT_SLUG", "bar");
            Environment.SetEnvironmentVariable("APPVEYOR_BUILD_VERSION", "bang");
            var appVeyor = new AppVeyor();

            // When
            var job = appVeyor.Job;

            // Then
            job.Should().Be("foo/bar/bang");
        }
Пример #29
0
        public void Job_Should_Be_Empty_String_When_Enviornment_Variables_Do_Not_Exit(string accountData, string slugData, string versionData)
        {
            // Given
            Environment.SetEnvironmentVariable("APPVEYOR_ACCOUNT_NAME", accountData);
            Environment.SetEnvironmentVariable("APPVEYOR_PROJECT_SLUG", slugData);
            Environment.SetEnvironmentVariable("APPVEYOR_BUILD_VERSION", versionData);

            var appVeyor = new AppVeyor();

            // When
            var job = appVeyor.Job;

            // Then
            job.Should().BeEmpty();
        }
Пример #30
0
        public void Detecter_Should_Be_True_When_AppVeyor_Enviornment_Variable_And_Ci_Enviornment_Variable_Exist_And_Both_Are_Equal_To_True(string appveyorData, string ciData)
        {
            // Given
            var ev = new Mock <IEnviornmentVariables>();

            ev.Setup(s => s.GetEnvironmentVariable("APPVEYOR")).Returns(appveyorData);
            ev.Setup(s => s.GetEnvironmentVariable("CI")).Returns(ciData);
            var appVeyor = new AppVeyor(ev.Object);

            // When
            var detecter = appVeyor.Detecter;

            // Then
            detecter.Should().BeTrue();
        }