public void SendAndReadMultipleRows_GeneralMessage_Pass() { //Arrange bool isSuccess = false; IList <GeneralMessage> messages = new List <GeneralMessage>(); //Act try { for (int i = 0; i < _numMessages; i++) // Creating 3 general messages to send to database { messages.Add(new GeneralMessage(receiverID, i + 2, GetDateTime.GetUTCNow(), "Test message" + i)); RoomAid.QueueConsumer.QueueConsumer.SendToDB((IMessage)messages[i]); } IList <IList <string> > incomingMessages = _messageDAO.RetrieveMultipleRows(new SqlCommand("SELECT * FROM dbo.InboxMessages")); IList <IList <string> > generalMessageContent = _messageDAO.RetrieveMultipleRows(new SqlCommand("SELECT MessageBody FROM dbo.GeneralMessages")); for (int i = 0; i < incomingMessages.Count; i++) { // InboxMessage[0..6] = [ReceiverID, MessageID, PrevMessageID, SenderID, IsRead, SentDate, IsGeneral] GeneralMessage incomingMessage = new GeneralMessage(Int32.Parse(incomingMessages[i][0]), Int32.Parse(incomingMessages[i][2]), Int32.Parse(incomingMessages[i][3]), DateTime.Parse(incomingMessages[i][5]), generalMessageContent[i][0]) { IsRead = bool.Parse(incomingMessages[i][4]) // IsRead [4] }; //incomingMessage.IsAccepted = bool.Parse(generalMessageContent[i][0]); if (incomingMessage.SenderID == messages[i].SenderID && incomingMessage.ReceiverID == messages[i].ReceiverID && incomingMessage.PrevMessageID == messages[i].PrevMessageID && incomingMessage.IsRead == messages[i].IsRead && incomingMessage.SentDate.ToString().Equals(messages[i].SentDate.ToString()) && // HACK: SQL & .NET DateTime precision is off, so comparing strings incomingMessage.MessageBody.Equals(messages[i].MessageBody) && incomingMessage.IsGeneral == true) { isSuccess = true; } else { isSuccess = false; // Since there are multiple messages to be checked, must set false if any are not equal } } } catch (Exception e) { Trace.WriteLine(e); } //Assert Assert.IsTrue(isSuccess); }