public void NoSePuedeIniciarJornadaConJornadaIniciada( [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); Action action = () => sut.IniciarJornada(usuario); action.ShouldThrow<InvalidOperationException>() .WithMessage("Ya existe una jornada iniciada. Debe terminar la jornada iniciada antes de iniciar una nueva."); commandsMock.Verify(c => c.CrearJornada(It.IsAny<Jornada>(), usuario), Times.Never()); }
public void NoSePuedeIniciarPausaConFechaAnteriorAlInicioDeLaJornada( [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.IniciarPausa(usuario); accion.ShouldThrow<InvalidOperationException>() .WithMessage("No se puede iniciar una pausa en una fecha anterior al inicio de la jornada."); commandsMock.Verify(c => c.ActualizarJornada(jornada, usuario), Times.Never()); }
public void NoSePuedeIniciarJornadaSiYaExisteJornadaParaElNuevoDia( [Frozen]Mock<IJornadaQueries> queriesMock, [Frozen]Mock<IJornadaCommands> commandsMock, [Frozen]Mock<ITimeProvider> timeProviderMock, JornadaService sut, Jornada jornada, DateTime finJornada, DateTime diaNuevaJornada, string usuario) { jornada.Finalizar(finJornada); queriesMock.Setup(q => q.ObtenerUltimaJornada(usuario)).Returns(jornada); queriesMock.Setup(q => q.ExisteJornada(usuario, diaNuevaJornada)).Returns(true); timeProviderMock.Setup(t => t.Today).Returns(diaNuevaJornada); Action action = () => sut.IniciarJornada(usuario); action.ShouldThrow<InvalidOperationException>() .WithMessage("Ya existe una jornada para la fecha indicada."); commandsMock.Verify(c => c.CrearJornada(It.IsAny<Jornada>(), usuario), Times.Never()); }
public void SePuedeTerminarPausaEnCondicionesCorrectas( [Frozen]Mock<IJornadaQueries> queriesMock, [Frozen]Mock<IJornadaCommands> commandsMock, [Frozen]Mock<ITimeProvider> timeProviderMock, JornadaService sut, Jornada jornada, DateTime inicioPausa, string usuario) { jornada.IniciarPausa(inicioPausa); queriesMock.Setup(q => q.ObtenerUltimaJornada(usuario)).Returns(jornada); timeProviderMock.Setup(t => t.Now).Returns(inicioPausa.AddHours(1)); sut.TerminarPausa(usuario); commandsMock.Verify(c => c.ActualizarJornada(jornada, usuario), Times.Once()); }
public void SePuedeIniciarJornadaConVerificacionesCorrectas( [Frozen]Mock<IJornadaQueries> queriesMock, [Frozen]Mock<IJornadaCommands> commandsMock, [Frozen]Mock<ITimeProvider> timeProviderMock, JornadaService sut, Jornada jornada, DateTime finJornada, DateTime diaNuevaJornada, string usuario) { jornada.Finalizar(finJornada); queriesMock.Setup(q => q.ObtenerUltimaJornada(usuario)).Returns(jornada); queriesMock.Setup(q => q.ExisteJornada(usuario, diaNuevaJornada)).Returns(false); timeProviderMock.Setup(t => t.Now).Returns(diaNuevaJornada); sut.IniciarJornada(usuario); commandsMock.Verify(c => c.CrearJornada(It.IsAny<Jornada>(), usuario), Times.Once()); }
public void NoSePuedeTerminarPausaSiNoHayPausaIniciada( [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.TerminarPausa(usuario); accion.ShouldThrow<InvalidOperationException>() .WithMessage("No se puede terminar una pausa cuando no hay una pausa iniciada."); commandsMock.Verify(c => c.ActualizarJornada(jornada, usuario), Times.Never()); }
public void NoSePuedeTerminarPausaConFechaAnteriorAInicioPausa( [Frozen]Mock<IJornadaQueries> queriesMock, [Frozen]Mock<IJornadaCommands> commandsMock, [Frozen]Mock<ITimeProvider> timeProviderMock, JornadaService sut, Jornada jornada, DateTime inicioPausa, string usuario) { jornada.IniciarPausa(inicioPausa); queriesMock.Setup(q => q.ObtenerUltimaJornada(usuario)).Returns(jornada); timeProviderMock.Setup(t => t.Now).Returns(inicioPausa.AddHours(-1)); Action accion = () => sut.TerminarPausa(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()); }
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()); }