2012-03-13 11 views
1

実際の問題であなたの助けが必要です。私は2つの操作の連絡先と基本的なバインディングを持つWCFサービスを作成しました。SoapUIを使用してWCFをテストする

1- void StartRegistration - 匿名のメンバーは、基本的な登録フォームに記入し、submitを押すことができます。すべての情報はデータベースに格納され、ランダムなトークンを持つリンクがユーザーの電子メールアドレスに送信されます。 2 - 完全一致登録 - このメソッドは、電子メールアドレスに送信されたトークンを検証し、トークンが有効な場合は、ユーザーアカウントが有効になります。

ここに問題があります。私はStartRegistrationメソッドを呼び出すことができます。電子メールは宛先に送信されますが、完全な登録方法にトークンを渡したいとします。

これはWCFサービスなので、SoapUIテストに合格するための依存関係注入はできません:)。

助けてください。

答えて

1

質問が正しく分かっている場合、トークンを作成する方法と確認する方法の2つのWCFメソッドがあります。 この場合、最初のメソッドStartRegistrationがトークンを返します。次に、そのトークンを使用してSoap UIで完全に完全な登録メソッドに簡単に渡すことができます。

別の非常に面倒な解決策は、実際にメールアカウントに接続し、リンクを読んで内容を解析するSoap UIでの面白いスクリプトテストステップを持つことです。編集

をここではあなたが必要とするスクリプトの一部です。あなたの郵便物からトークンを返す魅惑的なステップにそれを置きなさい。

注:このコードでは、メールはマルチパートではなくプレーンテキストであることを前提としています。また、メールボックスには1つのメールしかないと仮定しています。 JavaMail用のAPIは非常に広範囲なので、あなたがそれを使って魔法をしたいのなら、Googleはあなたの友人です:)少なくとも、これは始まるところです。

import javax.mail.*; 
import javax.mail.internet.*; 

// setup connection 
Properties props = new Properties(); 
def host = "pop3.live.com"; 
def username = "[email protected]"; 
def password = "myPassword"; 
def provider = "pop3s"; 

// Connect to the POP3 server 
Session session = Session.getDefaultInstance props, null 
Store store = session.getStore provider 
Folder inbox = null 
String content 
try 
{ 
store.connect host, username, password 

// Open the folder 
inbox = store.getFolder 'INBOX' 
if (!inbox) { 
    println 'No INBOX' 
    System.exit 1 
} 

inbox.open(Folder.READ_ONLY) 

Message[] messages = inbox.getMessages() 
content = messages[0].getContent() 

//Do some parsing of the content here, to find your token. 
//Place the result in content 
} 
finally 
{ 
    inbox.close false 
    store.close() 
} 

return content; //return the parsed token 
+0

セキュリティ上の懸念から、提案した最初の解決策は適切ではありません。私たちはサービス内で非常に安全なトークンアルゴリズムを持っており、トークンはエンドクライアントに公開されるべきではありません。 – Shailesh

+0

私は第二の解決策にもっと興味があります。 Groovyスクリプトのサンプルを投稿してください。私を助けてくれたThanx。 – Shailesh

+0

こんにちは! 私はread-mail-testのステップを作成することができましたが、それはあなたのメールがどのように見えるかによって異なります。例がありますか?また、CompleteRegistrationはパラメータとしてトークンを取得しますか? –

関連する問題