public TicketReferenceMvcModelBinder(IParsesTicketReference referenceParser)
 {
     if (referenceParser == null)
     {
         throw new ArgumentNullException(nameof(referenceParser));
     }
     this.referenceParser = referenceParser;
 }
Пример #2
0
 public CurrentProjectBackfillingTicketReferenceParserDecorator(IParsesTicketReference wrapped,
                                                                IGetsCurrentProject currentProjectProvider)
 {
     if (currentProjectProvider == null)
     {
         throw new ArgumentNullException(nameof(currentProjectProvider));
     }
     if (wrapped == null)
     {
         throw new ArgumentNullException(nameof(wrapped));
     }
     this.wrapped = wrapped;
     this.currentProjectProvider = currentProjectProvider;
 }
Пример #3
0
        public void GetTicketReference_parses_reference_followed_by_a_period([Frozen] IParsesTicketReference innerParser,
                                                                             Ext.TicketReferenceParser sut)
        {
            // Arrange
            var iterator = new StringSlice("#1234.");
            int charCount;

            // Act
            sut.GetTicketReference(iterator, out charCount);

            // Assert
            Mock.Get(innerParser)
            .Verify(x => x.ParseReferece("1234"), Times.Once);
        }
        public void GetReference_backfills_current_project_code_when_it_is_empty([Frozen] IParsesTicketReference wrapped,
                                                                                 [Frozen] IGetsCurrentProject projectProvider,
                                                                                 CurrentProjectBackfillingTicketReferenceParserDecorator sut,
                                                                                 TicketReference reference)
        {
            Mock.Get(wrapped)
            .Setup(x => x.GetReference("ABC", 10))
            .Returns(reference);
            Mock.Get(projectProvider)
            .Setup(x => x.GetCurrentProject())
            .Returns(new Project {
                Code = "ABC"
            });

            var result = sut.GetReference(null, 10);

            Assert.That(result, Is.SameAs(reference));
        }
        public void ParseReferece_returns_the_result_from_the_wrapped_instance_when_it_is_complete([Frozen] IParsesTicketReference wrapped,
                                                                                                   string input,
                                                                                                   CurrentProjectBackfillingTicketReferenceParserDecorator sut)
        {
            var reference = new TicketReference("ABC", 123);

            Mock.Get(wrapped)
            .Setup(x => x.ParseReferece(input))
            .Returns(reference);
            var result = sut.ParseReferece(input);

            Assert.That(result, Is.SameAs(reference));
        }
Пример #6
0
        public void GetTicketReference_parses_naked_ticket_number_without_project_code([Frozen] IParsesTicketReference innerParser,
                                                                                       Ext.TicketReferenceParser sut)
        {
            // Arrange
            var iterator = new StringSlice("#1234");
            int charCount;

            // Act
            sut.GetTicketReference(iterator, out charCount);

            // Assert
            Mock.Get(innerParser)
            .Verify(x => x.ParseReferece("1234"), Times.Once);
        }
Пример #7
0
        public void GetTicketReference_does_not_parse_if_there_are_further_alpha_characters_after_the_ticket_number([Frozen] IParsesTicketReference innerParser,
                                                                                                                    Ext.TicketReferenceParser sut)
        {
            // Arrange
            var iterator = new StringSlice("#ABC123DEF");
            int charCount;

            // Act
            sut.GetTicketReference(iterator, out charCount);

            // Assert
            Mock.Get(innerParser)
            .Verify(x => x.ParseReferece(It.IsAny <string>()), Times.Never);
        }
Пример #8
0
        public void GetTicketReference_does_not_parse_if_there_is_a_dash_between_project_code_and_ticket_number([Frozen] IParsesTicketReference innerParser,
                                                                                                                Ext.TicketReferenceParser sut)
        {
            // Arrange
            var iterator = new StringSlice("#ABC-123");
            int charCount;

            // Act
            sut.GetTicketReference(iterator, out charCount);

            // Assert
            Mock.Get(innerParser)
            .Verify(x => x.ParseReferece(It.IsAny <string>()), Times.Never);
        }
Пример #9
0
        public void GetTicketReference_does_not_parse_if_first_char_is_not_hash_symbol([Frozen] IParsesTicketReference innerParser,
                                                                                       Ext.TicketReferenceParser sut)
        {
            // Arrange
            var iterator = new StringSlice("*1234");
            int charCount;

            // Act
            sut.GetTicketReference(iterator, out charCount);

            // Assert
            Mock.Get(innerParser)
            .Verify(x => x.ParseReferece(It.IsAny <string>()), Times.Never);
        }