message_queue.unit_test.anubis 1.19 KB

read system/muscle.anubis
read system/message_queue.anubis
read tools/unit_test.anubis


define One
  add_remove_test
  (
    UnitTestContext ut
  )=
  //received part test
  with mQ  = create_MessageQueue("test1"),
       received_msg = message(1),
  //test if receive queue is empty
  assertIsFalse(ut, has_received_Message(mQ)(unique), "receive queue is empty");
  
  //test the adding message in queue
  add_received_Message(mQ)(received_msg);
  assertIsTrue(ut, has_received_Message(mQ)(unique), "adding message in queue");
  
  //retrieve the last message and test if receive queue is empty
  forget(get_next_received_Message(mQ)(1));
  assertIsFalse(ut, has_received_Message(mQ)(unique), "retrieve the last message");
  
  
  with send_msg = message(2),
  assertIsSame(ut, get_next_Message_to_send(mQ)(unique), timeout, "timeout");
  add_Message_to_send(mQ)(send_msg);
  assertIsSame(ut, get_next_Message_to_send(mQ)(unique), msg(send_msg), "get next message");
  assertIsSame(ut, get_next_Message_to_send(mQ)(unique), timeout, "timeout again")
 .



public define UnitTestSuite make_message_queue_test_suite
  =
  ut_suite("system.message_queue",
    [
      ut_fixture("Add/Remove", add_remove_test),
    ]).