public void NoSePuedeTerminarJornadaSiLaUltimaJornadaEstaTerminada( [Frozen]Mock<IJornadaQueries> queriesMock, [Frozen]Mock<IJornadaCommands> commandsMock, [Frozen]Mock<ITimeProvider> timeProviderMock, JornadaService sut, Jornada jornada, DateTime finJornada, string usuario) { jornada.Finalizar(finJornada); queriesMock.Setup(q => q.ObtenerUltimaJornada(usuario)).Returns(jornada); timeProviderMock.Setup(t => t.Now).Returns(jornada.Inicio.AddHours(8)); Action accion = () => sut.TerminarJornada(usuario); accion.ShouldThrow<InvalidOperationException>() .WithMessage("No se puede terminar un periodo ya terminado."); commandsMock.Verify(c => c.ActualizarJornada(jornada, usuario), Times.Never()); }
public void SePuedeTerminarJornadaEnCondicionesCorrectas( [Frozen]Mock<IJornadaQueries> queriesMock, [Frozen]Mock<IJornadaCommands> commandsMock, [Frozen]Mock<ITimeProvider> timeProviderMock, JornadaService sut, Jornada jornada, string usuario) { queriesMock.Setup(q => q.ObtenerUltimaJornada(usuario)).Returns(jornada); timeProviderMock.Setup(t => t.Now).Returns(jornada.Inicio.AddHours(8)); sut.TerminarJornada(usuario); commandsMock.Verify(c => c.ActualizarJornada(jornada, usuario), Times.Once()); }
public void NoSePuedeTerminarJornadaConFechaFinMenorQueFechaInicio( [Frozen]Mock<IJornadaQueries> queriesMock, [Frozen]Mock<IJornadaCommands> commandsMock, [Frozen]Mock<ITimeProvider> timeProviderMock, JornadaService sut, Jornada jornada, string usuario) { queriesMock.Setup(q => q.ObtenerUltimaJornada(usuario)).Returns(jornada); timeProviderMock.Setup(t => t.Now).Returns(jornada.Inicio.AddHours(-1)); Action accion = () => sut.TerminarJornada(usuario); accion.ShouldThrow<InvalidOperationException>() .WithMessage("La fecha de finalización debe ser posterior a la fecha de inicio."); commandsMock.Verify(c => c.ActualizarJornada(jornada, usuario), Times.Never()); }