Пример #1
0
        public void GetPlasticTask_ShouldReturnLinkedTask()
        {
            var svc = new YouTrackService(getTestConfig());
            var expectedIssueKey = ConfigurationManager.AppSettings["test.issueKey"];
            var actualTask       = svc.GetPlasticTask(expectedIssueKey);

            Assert.IsNotNull(actualTask);
            Assert.AreEqual(expectedIssueKey, actualTask.Id);
            Assert.IsTrue(actualTask.CanBeLinked);
        }
Пример #2
0
        public void GetUnresolvedIssuesByAssignee_ShouldReturnTicketsForAssignee()
        {
            var config       = getTestConfig();
            var svc          = new YouTrackService(config);
            var assigneeName = ConfigurationManager.AppSettings["test.fieldValue"];
            var issues       = svc.GetUnresolvedPlasticTasks(assigneeName).ToList();

            CollectionAssert.IsNotEmpty(issues);
            Assert.IsTrue(issues.All(pIssue => pIssue.Owner.Equals(assigneeName, StringComparison.InvariantCultureIgnoreCase)));
        }
Пример #3
0
        public void AssignIssue_ShouldUpdateTicketToAssigned()
        {
            var config = getTestConfig();
            var svc    = new YouTrackService(config);

            svc.Authenticate();
            Assert.IsNotNull(svc.GetAuthenticatedUser());

            var testIssueID = ConfigurationManager.AppSettings["test.issueKey"];

            svc.AssignIssue(testIssueID, "dbustamante");
        }
Пример #4
0
        public void BeginWorkOnIssue_ShouldUpdateTicketToInProgress()
        {
            var config = getTestConfig();
            var svc    = new YouTrackService(config);

            svc.Authenticate();
            Assert.IsNotNull(svc.GetAuthenticatedUser());

            var testIssueID = ConfigurationManager.AppSettings["test.issueKey"];

            svc.EnsureIssueInProgress(testIssueID);
        }
Пример #5
0
        public static void Initialize(Settings settings)
        {
            Verify.IsNotNull(settings, "settings");

            _settings = settings;
            YouTrackService = new YouTrackService("https://youtrack.hbo.com/youtrack", settings.CookieContainer);
            ViewModel = new ViewModel();

            _timer = new DispatcherTimer(DispatcherPriority.Normal, Application.Current.Dispatcher)
            {
                Interval = _PollInterval,
            };
            _timer.Tick += (sender, e) => _UpdateQueryCounts();
        }
Пример #6
0
        public void GetAuthenticatedUser_ShouldReturnUserWithEmail()
        {
            var svc = new YouTrackService(getTestConfig());

            svc.Authenticate();
            var user = svc.GetAuthenticatedUser();

            Assert.IsNotNull(user);

            var expectedValue = ConfigurationManager.AppSettings["test.authUserEmail"];
            var actualValue   = user.Email;

            Assert.AreEqual(expectedValue, actualValue);
        }
Пример #7
0
        public void TestCommentFormatting()
        {
            var  host        = "acme.website.int:5656/";
            var  webGui      = new Uri($"https://{host}");
            var  repository  = "Test.Repository";
            var  branch      = "/yt_TEST-60";
            long changeSetId = 969;
            var  comment     = "This is my test comment";
            var  nl          = Environment.NewLine;
            var  guid        = Guid.NewGuid();

            var generatedComment = YouTrackService.FormatComment(host, repository, webGui, branch, changeSetId, comment, guid);

            var mdComment = $"{{color:darkgreen}}*PSCM - CODE COMMIT #{changeSetId}*{{color}}";

            var changeSetUriBuilder = new UriBuilder(webGui);

            if (string.IsNullOrEmpty(changeSetUriBuilder.Scheme) ||
                (!changeSetUriBuilder.Scheme.Equals("https", StringComparison.CurrentCultureIgnoreCase) &&
                 !changeSetUriBuilder.Scheme.Equals("http", StringComparison.CurrentCultureIgnoreCase)))
            {
                changeSetUriBuilder.Scheme = "http";
            }

            changeSetUriBuilder.Path = $"webui/repos/{repository}/diff/changeset/{guid}";

            var hostName = host.StartsWith("localhost", StringComparison.CurrentCultureIgnoreCase) ||
                           host.StartsWith("127.0.0.", StringComparison.CurrentCultureIgnoreCase)
                ? Environment.MachineName + (host.Contains(":") ? host.Substring(host.IndexOf(":")) : "")
                : host;

            var tildes = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";

            var commentBuilder = new StringBuilder();

            commentBuilder.Append($"{comment}{nl}{nl}");
            commentBuilder.Append($"{tildes}{nl}");
            commentBuilder.Append($"[{mdComment}|{changeSetUriBuilder}]{nl}");
            //commentBuilder.Append($"{{monospace}}");
            commentBuilder.Append($"{guid} @ {branch} @ {repository} @ {hostName}");
            //commentBuilder.Append($"{{monospace}}");

            var expectedComment = commentBuilder.ToString();

            Console.WriteLine("\nActual:\n" + generatedComment);
            Assert.AreEqual(expectedComment, generatedComment);
        }
Пример #8
0
        public void HydratePlasticTask_Base()
        {
            var facade = GetConfigFacade("http://test.com");

            facade.SetupGet(x => x.ShowIssueStateInBranchTitle).Returns(false);
            facade.SetupGet(x => x.IgnoreIssueStateForBranchTitle).Returns("");
            var sut = new YouTrackService(facade.Object);

            dynamic issue = new Issue();

            issue.Id           = "ABC1234";
            issue.Summary      = "Issue Summary";
            issue.State        = "In Progress";
            issue.AssigneeName = "jdoe";
            issue.Description  = "Issue Description";

            var task = sut.hydratePlasticTaskFromIssue(issue);

            Assert.AreEqual("ABC1234", task.Id);
            Assert.AreEqual("Issue Summary", task.Title);
            Assert.AreEqual("In Progress", task.Status);
            Assert.AreEqual("jdoe", task.Owner);
            Assert.AreEqual("Issue Description", task.Description);
        }
 public ClockifyYouTrackSynchronizerController(AssociationsManager associationsManager,
                                               YouTrackService youTrackService)
 {
     _youTrackService     = youTrackService;
     _associationsManager = associationsManager;
 }
Пример #10
0
 public GoToYouTrackIssueProvider(YouTrackService yt)
 {
     this.yt = yt;
 }
Пример #11
0
 internal static void ShowQuery(YouTrackService.SavedSearch scope, string query)
 {
     Process.Start(YouTrackService.GetQueryUri(scope, query).ToString());
 }
Пример #12
0
 internal static void ShowIssue(YouTrackService.IssueSummary issue)
 {
     Process.Start(YouTrackService.GetIssueUri(issue).ToString());
 }
Пример #13
0
        public void TestMarkTaskAsOpen_Comment()
        {
            var msg = "{color:darkgreen}*PSCM - BRANCH CREATED*{color}";

            Assert.AreEqual(msg, YouTrackService.GetBranchCreationMessage());
        }
 public GoToYouTrackIssueProvider(YouTrackService yt)
 {
     this.yt = yt;
 }