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 UnaJornadaNoTerminadaSinPausasSePuedeTerminar() { var fixture = new Fixture(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var finJornada = fixture.CreateAnonymous<DateTime>(); var sut = new Jornada(inicioJornada); sut.Finalizar(finJornada); sut.EstaIniciado.Should().BeFalse(); }
public void UnaJornadaNoTerminadaConUnaOausaIniciadaNoSePuedeTerminar() { var fixture = new Fixture(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var inicioPausa = fixture.CreateAnonymous<DateTime>(); var finJornada = fixture.CreateAnonymous<DateTime>(); var pausa = new Pausa(inicioPausa); var sut = new Jornada(inicioJornada, pausa); Assert.Throws<InvalidOperationException>( () => sut.Finalizar(finJornada)); }
public void NoSePuedeIniciarPausaSiUltimaJOrnadaTerminada( [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(1)); Action accion = () => sut.IniciarPausa(usuario); accion.ShouldThrow<InvalidOperationException>() .WithMessage("No se puede iniciar una pausa en una Jornada finalizada."); commandsMock.Verify(c => c.ActualizarJornada(jornada, usuario), Times.Never()); }
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()); }