Package nablarch.test.core.messaging
Class MockMessagingContext
java.lang.Object
nablarch.fw.messaging.MessagingContext
nablarch.test.core.messaging.MockMessagingContext
- All Implemented Interfaces:
Closeable
,AutoCloseable
テストデータの内容にもとづき、要求電文のログ出力および、任意の応答電文を返却するMessagingContext。
本クラスは、画面オンライン処理方式の取引単体テストのように、VMを立ち上げたままで連続してテストを行う場面での使用を想定している。 よって、テストデータのExcelファイルのタイムスタンプが更新された場合に、応答電文のカウンタを更新する(テストデータを再読み込みする)機能を提供する。
本クラスを使用する場合、キューへのアクセスは行われない。
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
現在のセッションを終了し、保持しているリソースを開放する。receiveMessage
(String receiveQueue, String messageId, long timeout) 指定した受信キュー上のメッセージを取得する。 messageIdが指定されている場合は、当該のメッセージに対する応答電文を 取得する。messageIdが指定されていないばあいは、受信キュー上の任意の電文 を取得する。 キュー上に取得対象のメッセージが存在しない場合、メッセージを受信するか、 指定した時間が経過する(タイムアウトする)までブロックする。 タイムアウトした場合はnullをかえす。 タイムアウト時間に0以下の数値を設定した場合は 応答電文を受信するまでブロックし続ける。send
(SendingMessage message) メッセージを送信する。sendMessage
(SendingMessage message) メッセージを送信する。sendSync
(SendingMessage message, long timeout) メッセージの同期送信を行う。 メッセージ送信後、応答電文を受信するか、指定した時間が経過するまでブロックする。 タイムアウトした場合はnullを返す。 タイムアウト時間に0以下の数値を設定した場合、 プロバイダ側のデフォルトタイムアウト時間を経過した場合はnullを返す。 タイムアウト時間が指定された場合は有効期間ヘッダにタイムアウト時間を指定する。Methods inherited from class nablarch.fw.messaging.MessagingContext
attach, detach, emitLog, getInstance, receiveSync, receiveSync, receiveSync, sendSync
-
Constructor Details
-
MockMessagingContext
public MockMessagingContext()
-
-
Method Details
-
sendSync
メッセージの同期送信を行う。 メッセージ送信後、応答電文を受信するか、指定した時間が経過するまでブロックする。 タイムアウトした場合はnullを返す。 タイムアウト時間に0以下の数値を設定した場合、 プロバイダ側のデフォルトタイムアウト時間を経過した場合はnullを返す。 タイムアウト時間が指定された場合は有効期間ヘッダにタイムアウト時間を指定する。
この実装では、sendSyncメソッドをオーバーライドし、要求電文のアサートおよび、応答電文の返却を行う。本メソッドは、要求電文ヘッダに「requestId」という名前のフィールドがある前提で動作する。
- Overrides:
sendSync
in classMessagingContext
- Parameters:
message
- 送信メッセージtimeout
- 応答タイムアウト (単位:ミリ秒、0以下の数値の場合はブロックし続ける)- Returns:
- 応答受信メッセージ(タイムアウトした場合はnull)
-
close
public void close()現在のセッションを終了し、保持しているリソースを開放する。
この実装では何も行わない。- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classMessagingContext
-
send
メッセージを送信する。- Overrides:
send
in classMessagingContext
- Parameters:
message
- 送信メッセージ- Returns:
- 送信メッセージのメッセージID
- Throws:
UnsupportedOperationException
-
sendMessage
メッセージを送信する。- Specified by:
sendMessage
in classMessagingContext
- 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 classMessagingContext
- Parameters:
receiveQueue
- 受信キューの論理名messageId
- 送信電文のメッセージID (応答受信でない場合はnull)timeout
- 応答タイムアウト (単位:ミリ秒、0以下の数値の場合はブロックし続ける)- Returns:
- 受信したメッセージ(タイムアウトした場合はnull)
- Throws:
UnsupportedOperationException
- このメソッドが呼ばれた場合にスローされる例外
-