public void ActualizarJornada( [Greedy]Jornada jornada) { var database = new Database(DatabaseHelper.Database); var sut = new PetaPocoJornadaCommands(database); sut.CrearJornada(jornada, DatabaseHelper.Usuario); var jornadaDbRow = database.FirstOrDefault<JornadaDbRow>( "Select * from Jornadas where IdJornada = @0", jornada.Id); jornadaDbRow.Should().NotBeNull(); // Modificamos var nuevaPausa = new Pausa(jornada.Fin.Value, jornada.Fin.Value.AddHours(2)); var idJornada = jornada.Id; jornada = new Jornada( jornada.Inicio, jornada.Fin.Value.AddDays(1), jornada.Pausas.Skip(1).Union(new[] { nuevaPausa }).ToArray()); jornada.Id = idJornada; sut.ActualizarJornada(jornada, DatabaseHelper.Usuario); jornadaDbRow = database.FirstOrDefault<JornadaDbRow>( "Select * from Jornadas where IdJornada = @0", jornada.Id); jornadaDbRow.Should().NotBeNull(); database.Execute("DELETE FROM Pausas WHERE IdJornada = @0", jornada.Id); database.Execute("DELETE FROM Jornadas WHERE IdJornada = @0", jornada.Id); }
public void UnaJornadaIniciadaConUltimaPausaIniciadaTienePausaIniciada() { var fixture = new Fixture(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var inicioPausa = fixture.CreateAnonymous<DateTime>(); var pausa = new Pausa(inicioPausa); var sut = new Jornada(inicioJornada, pausa); sut.PausaIniciada.Should().NotBeNull(); }
public void NoSePuedeCrearJornadaIniciadaConPausasAnterioresAFechaInicio() { var fixture = new Fixture(); var inicioPausa = fixture.CreateAnonymous<DateTime>(); var finPausa = fixture.CreateAnonymous<DateTime>(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var pausa = new Pausa(inicioPausa, finPausa); Assert.Throws<InvalidOperationException>( () => new Jornada(inicioJornada, pausa)); }
public void NoSePuedeCrearJornadaTerminadaConPausasFueraDeLasFechasDeLaJornada3() { var fixture = new Fixture(); var inicioPausa = fixture.CreateAnonymous<DateTime>(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var finJornada = fixture.CreateAnonymous<DateTime>(); var finPausa = fixture.CreateAnonymous<DateTime>(); var pausa = new Pausa(inicioPausa, finPausa); Assert.Throws<InvalidOperationException>( () => new Jornada(inicioJornada, finJornada, pausa)); }
public void UnaJornadaNoTerminadaNoPuedeIniciarPausaSiYaHayUnaPausaIniciada() { var fixture = new Fixture(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var inicioPausa1 = fixture.CreateAnonymous<DateTime>(); var inicioPausa2 = fixture.CreateAnonymous<DateTime>(); var pausa = new Pausa(inicioPausa1); var sut = new Jornada(inicioJornada, pausa); sut.PausaIniciada.Should().NotBeNull(); Assert.Throws<InvalidOperationException>( () => sut.IniciarPausa(inicioPausa2)); }
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 UnaJornadaNoTerminadaConPausasTerminadasSePuedeTerminar() { var fixture = new Fixture(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var inicioPausa = fixture.CreateAnonymous<DateTime>(); var finPausa = fixture.CreateAnonymous<DateTime>(); var finJornada = fixture.CreateAnonymous<DateTime>(); var pausa = new Pausa(inicioPausa, finPausa); var sut = new Jornada(inicioJornada, pausa); sut.Finalizar(finJornada); sut.EstaIniciado.Should().BeFalse(); }
public void UnaJornadaNoTerminadaConPausaIniciadaPuedeTerminarUnaPausa() { var fixture = new Fixture(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var inicioPausa = fixture.CreateAnonymous<DateTime>(); var finPausa = fixture.CreateAnonymous<DateTime>(); var pausa = new Pausa(inicioPausa); var sut = new Jornada(inicioJornada, pausa); sut.PausaIniciada.Should().NotBeNull(); sut.TerminarPausa(finPausa); sut.PausaIniciada.Should().BeNull(); }
public void UnaJornadaNoTerminadaConPausaIniciadaNoPuedeTerminarPausaAntesDelInicioDeLaPausa() { var fixture = new Fixture(); var inicioJornada = fixture.CreateAnonymous<DateTime>(); var finPausa = fixture.CreateAnonymous<DateTime>(); var inicioPausa = fixture.CreateAnonymous<DateTime>(); var pausa = new Pausa(inicioPausa); var sut = new Jornada(inicioJornada, pausa); sut.PausaIniciada.Should().NotBeNull(); Assert.Throws<InvalidOperationException>( () => sut.TerminarPausa(finPausa)); }
public void IniciarPausa(DateTime inicioPausa) { if (this.EstaIniciado == false) { throw new InvalidOperationException("No se puede iniciar una pausa en una Jornada finalizada."); } if (this.PausaIniciada != null) { throw new InvalidOperationException("No se puede iniciar una pausa cuando ya hay una pausa iniciada."); } if (inicioPausa < this.Inicio) { throw new InvalidOperationException("No se puede iniciar una pausa en una fecha anterior al inicio de la jornada."); } var pausa = new Pausa(inicioPausa); this.pausas.Add(pausa); }