Class RequestTestingMessagingProvider.RequestTestingMessagingContext

java.lang.Object
nablarch.fw.messaging.MessagingContext
nablarch.test.core.messaging.RequestTestingMessagingProvider.RequestTestingMessagingContext
All Implemented Interfaces:
Closeable, AutoCloseable
Enclosing class:
RequestTestingMessagingProvider

public static class RequestTestingMessagingProvider.RequestTestingMessagingContext extends MessagingContext
テストを行う際に、要求電文のアサートおよび応答電文を返却するMessagingContext。

アサート用の要求電文および応答電文は、Excelのテストケースから読み込むことを想定している。

本クラスを使用する場合、キューへのアクセスは行われない。

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    assertSendingMessage(Class<?> testClass, String sheetName, String caseNo, String expectedRequestMessageId)
    要求メッセージのアサートを行う。
    static void
    リクエスト単体テスト時に使用する要求電文のキャッシュをクリアする。
    void
    現在のセッションを終了し、保持しているリソースを開放する。
    static void
    initializeForRequestUnitTesting(Class<?> clazz, String sheetName, String no, String responseMessageId, String expectedMessageId)
    リクエスト単体テスト時の初期化処理を行う。
    receiveMessage(String receiveQueue, String messageId, long timeout)
    指定した受信キュー上のメッセージを取得する。 messageIdが指定されている場合は、当該のメッセージに対する応答電文を 取得する。messageIdが指定されていないばあいは、受信キュー上の任意の電文 を取得する。 キュー上に取得対象のメッセージが存在しない場合、メッセージを受信するか、 指定した時間が経過する(タイムアウトする)までブロックする。 タイムアウトした場合はnullをかえす。 タイムアウト時間に0以下の数値を設定した場合は 応答電文を受信するまでブロックし続ける。
    メッセージを送信する。
    メッセージを送信する。
    sendSync(SendingMessage message, long timeout)
    メッセージの同期送信を行う。 メッセージ送信後、応答電文を受信するか、指定した時間が経過するまでブロックする。 タイムアウトした場合はnullを返す。 タイムアウト時間に0以下の数値を設定した場合、 プロバイダ側のデフォルトタイムアウト時間を経過した場合はnullを返す。 タイムアウト時間が指定された場合は有効期間ヘッダにタイムアウト時間を指定する。

    Methods inherited from class nablarch.fw.messaging.MessagingContext

    attach, detach, emitLog, getInstance, receiveSync, receiveSync, receiveSync, sendSync

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RequestTestingMessagingContext

      public RequestTestingMessagingContext()
  • Method Details

    • initializeForRequestUnitTesting

      public static void initializeForRequestUnitTesting(Class<?> clazz, String sheetName, String no, String responseMessageId, String expectedMessageId)
      リクエスト単体テスト時の初期化処理を行う。

      本機能のリクエスト単体テストを動作させるために必要なプロパティをstatic領域に設定する。 また、要求電文のキャッシュをクリアする。

      Parameters:
      clazz - テストケースのクラス
      sheetName - シート名
      no - テストケース番号
      responseMessageId - 応答電文のID
      expectedMessageId - 要求電文のID
    • clearSendingMessageCache

      public static void clearSendingMessageCache()
      リクエスト単体テスト時に使用する要求電文のキャッシュをクリアする。

      本機能のリクエスト単体テストで使用する要求電文のキャッシュをクリアする。

    • sendSync

      public ReceivedMessage sendSync(SendingMessage message, long timeout)
      メッセージの同期送信を行う。 メッセージ送信後、応答電文を受信するか、指定した時間が経過するまでブロックする。 タイムアウトした場合はnullを返す。 タイムアウト時間に0以下の数値を設定した場合、 プロバイダ側のデフォルトタイムアウト時間を経過した場合はnullを返す。 タイムアウト時間が指定された場合は有効期間ヘッダにタイムアウト時間を指定する。
      この実装では、sendSyncメソッドをオーバーライドし、要求電文のアサートおよび、応答電文の返却を行う。

      本メソッドは、要求電文ヘッダに「requestId」という名前のフィールドがある前提で動作する。

      Overrides:
      sendSync in class MessagingContext
      Parameters:
      message - 送信メッセージ
      timeout - 応答タイムアウト (単位:ミリ秒、0以下の数値の場合はブロックし続ける)
      Returns:
      応答受信メッセージ(タイムアウトした場合はnull)
    • assertSendingMessage

      public static void assertSendingMessage(Class<?> testClass, String sheetName, String caseNo, String expectedRequestMessageId)
      要求メッセージのアサートを行う。
      Parameters:
      testClass - テストクラス
      sheetName - シート名
      caseNo - テストケース番号
      expectedRequestMessageId - 要求電文(期待値)のID
    • close

      public void close()
      現在のセッションを終了し、保持しているリソースを開放する。
      この実装では何も行わない。
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class MessagingContext
    • send

      public String send(SendingMessage message) throws UnsupportedOperationException
      メッセージを送信する。
      Overrides:
      send in class MessagingContext
      Parameters:
      message - 送信メッセージ
      Returns:
      送信メッセージのメッセージID
      Throws:
      UnsupportedOperationException
    • sendMessage

      public String sendMessage(SendingMessage message) throws UnsupportedOperationException
      メッセージを送信する。
      Specified by:
      sendMessage in class MessagingContext
      Parameters:
      message - 送信メッセージ
      Returns:
      送信メッセージのメッセージID
      Throws:
      UnsupportedOperationException
    • receiveMessage

      public ReceivedMessage receiveMessage(String receiveQueue, String messageId, long timeout) throws UnsupportedOperationException
      指定した受信キュー上のメッセージを取得する。 messageIdが指定されている場合は、当該のメッセージに対する応答電文を 取得する。messageIdが指定されていないばあいは、受信キュー上の任意の電文 を取得する。 キュー上に取得対象のメッセージが存在しない場合、メッセージを受信するか、 指定した時間が経過する(タイムアウトする)までブロックする。 タイムアウトした場合はnullをかえす。 タイムアウト時間に0以下の数値を設定した場合は 応答電文を受信するまでブロックし続ける。
      この実装ではこのメソッドはサポートしない。
      Specified by:
      receiveMessage in class MessagingContext
      Parameters:
      receiveQueue - 受信キューの論理名
      messageId - 送信電文のメッセージID (応答受信でない場合はnull)
      timeout - 応答タイムアウト (単位:ミリ秒、0以下の数値の場合はブロックし続ける)
      Returns:
      受信したメッセージ(タイムアウトした場合はnull)
      Throws:
      UnsupportedOperationException - このメソッドが呼ばれた場合にスローされる例外