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