public TicketWorkLogFactory(IParsesTimespan timespanParser, IGetsTicketByReference ticketProvider) { if (ticketProvider == null) { throw new ArgumentNullException(nameof(ticketProvider)); } if (timespanParser == null) { throw new ArgumentNullException(nameof(timespanParser)); } this.timespanParser = timespanParser; this.ticketProvider = ticketProvider; }
void AssertParsedAs(string input, TimeSpan expected, IParsesTimespan sut) { var result = sut.GetTimeSpan(input); Assert.That(result, Is.EqualTo(expected)); }
public void GetWorkLog_returns_success_result_with_correct_values_from_services(AddWorkLogRequest request, [Frozen] IParsesTimespan timespanParser, [Frozen] IGetsTicketByReference ticketQuery, int minutes, Ticket ticket, TicketWorkLogFactory sut) { Mock.Get(ticketQuery).Setup(x => x.GetTicketByReference(request.TicketReference)).Returns(ticket); Mock.Get(timespanParser).Setup(x => x.GetTimeSpan(request.TimeSpent)).Returns(() => TimeSpan.FromMinutes(minutes)); var result = sut.GetWorkLog(request); Assert.That(result?.Success, Is.True); Assert.That(result?.WorkLog?.User, Is.SameAs(request.User)); Assert.That(result?.Ticket, Is.SameAs(ticket)); Assert.That(result?.WorkLog?.Ticket, Is.Null); Assert.That(result?.WorkLog?.GetTimeSpent().TotalMinutes, Is.EqualTo(minutes)); Assert.That(result?.WorkLog?.TimeStarted, Is.EqualTo(request.TimeStarted)); }
public void GetWorkLog_returns_failure_result_if_time_parser_throws_FormatException(AddWorkLogRequest request, [Frozen] IParsesTimespan timespanParser, TicketWorkLogFactory sut) { Mock.Get(timespanParser).Setup(x => x.GetTimeSpan(It.IsAny <string>())).Throws <FormatException>(); var result = sut.GetWorkLog(request); Assert.That(result?.Success, Is.False); Assert.That(result?.TimeSpentIsInvalid, Is.True); }