public TicketReferenceMvcModelBinder(IParsesTicketReference referenceParser) { if (referenceParser == null) { throw new ArgumentNullException(nameof(referenceParser)); } this.referenceParser = referenceParser; }
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; }
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)); }
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); }
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); }
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); }
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); }