public void ReadReservationsRetrievesRowsFromDatabase() { using (var conn = new SqlConnection(ConnectionStrings.Reservations)) using (var cmd = new SqlCommand(@" INSERT INTO Reservations ([Date], [Name], [Email], [Quantity]) VALUES ('2018-02-05 07:39:37 +01:00', 'Ploeh Fnaah', '*****@*****.**', 3)", conn)) { conn.Open(); cmd.ExecuteNonQuery(); } var sut = new SqlReservationsProgramHandler(ConnectionStrings.Reservations); var p = ReservationInstruction.ReadReservations( new DateTimeOffset( new DateTime(2018, 2, 5), TimeSpan.FromHours(1))); p.Accept(sut).Wait(); var actual = p.GetResult(); Assert.Equal(1, actual.Count); Assert.Equal("Ploeh Fnaah", actual.First().Name); Assert.Equal("*****@*****.**", actual.First().Email); Assert.Equal(3, actual.First().Quantity); }
public void CreateAddsRowToDatabase() { var sut = new SqlReservationsProgramHandler(ConnectionStrings.Reservations); var p = ReservationInstruction.CreateReservation( new Reservation { Date = new DateTimeOffset(2018, 2, 4, 16, 38, 51, TimeSpan.FromHours(1)), Email = "*****@*****.**", Name = "Foo Bar", IsAccepted = true, Quantity = 4 }); p.Accept(sut).Wait(); var actual = p.GetResult(); using (var conn = new SqlConnection(ConnectionStrings.Reservations)) using (var cmd = new SqlCommand("SELECT * FROM Reservations", conn)) { conn.Open(); using (var rdr = cmd.ExecuteReader()) { Assert.True(rdr.Read()); Assert.Equal( new DateTimeOffset(2018, 2, 4, 16, 38, 51, TimeSpan.FromHours(1)), rdr["Date"]); Assert.Equal("*****@*****.**", rdr["Email"]); Assert.Equal("Foo Bar", rdr["Name"]); Assert.Equal(4, rdr["Quantity"]); Assert.Equal(actual, rdr["Id"]); } } }
public void IsReservationInFutureReturnsFalse() { var now = DateTimeOffset.Now; var sut = new SqlReservationsProgramHandler(ConnectionStrings.Reservations); var reservation = new Reservation { Date = now.AddDays(-2), Name = "Qux Corge", Email = "*****@*****.**", Quantity = 1 }; var p = ReservationInstruction.IsReservationInFuture(reservation); p.Accept(sut).Wait(); var actual = p.GetResult(); Assert.False(actual); }
public void IsReservationInFutureReturnsTrue() { var now = DateTimeOffset.Now; var sut = new SqlReservationsProgramHandler(ConnectionStrings.Reservations); var reservation = new Reservation { Date = now.AddDays(4), Name = "Sgryt Ler", Email = "*****@*****.**", Quantity = 2 }; var p = ReservationInstruction.IsReservationInFuture(reservation); p.Accept(sut).Wait(); var actual = p.GetResult(); Assert.True(actual); }