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());
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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());
        }