2016-12-15 7 views
0

私はSavonを使っていくつかのWSDL SOAPサービスをテストしており、サービスの中には重複したキー/値が必要です。たとえば、「製品」列内の「製品」値:メッセージの "無視された重複したキー"を修正する方法

@client.call(
    :create_template, message: { 
    :item => [{ 
     'promotion_id'  => "1", 
     'code_is_unique' => "0", 
     'name'   => "qasusc1", 
     'description'  => "Automation suscription", 
     'basecode'  => "qasusc1", 
     'total_redemptions' => "30", 
     'valid_from'  => "2016-12-12 00:00:00", 
     'valid_to'  => "2017-12-12 00:00:00", 
     'duration_quantity' => "1", 
     'duration_unit'  => "M", 
     'operator_code'  => "NAME", 
     'initial_quantity' => "30", 
     :products => [{ 
     :product => [{ 
      'id'   => "3", 
      'off_percentage' => "100", 
      'quantity'  => "1" 
     }], 
     :product => [{ 
      'id'   => "4", 
      'off_percentage' => "100", 
      'quantity'  => "1" 
     }] 
     }], 
     :lists => [{ 
     'list'   => "1" 
     }], 
     :promotion_rules => [{ 
     :promotion_rule => [{ 
      'code' => "HAS_PAYMENT_GATEWAY_RULE", 
      'value' => "1" 
     }] 
     }] 
    }] 
    } 
) 

しかし、私は次のエラーを取得しています:

tests/suites_soap/test_soap.rb:840: warning: duplicated key at line 22 ignored: :product 
+0

ようこそ:

this issueによると、あなたはRubyの形で重複したキーを表現するために、配列を使用する必要があります。 「[mcve]」をお読みください。問題を示す最小限のコードと入力データを確認する必要があります。実行されるコードを追加して、可能な限り小さな入力まで入力を減らして、引き続きメッセージを生成してください。これは、テストハーネスを作成したり、データを減らす必要がなくなり、応答が遅くなるので役に立ちます。 –

答えて

2

あなたは、ハッシュ、期間内のキーを複製することはできません。

{ a: 1, a: 2 }常に{a: 2}と等しくなります。スタックオーバーフローへ

:products => [{ 
    :product => [ 
    { 
     'id'     => "3", 
     'off_percentage'  => "100", 
     'quantity'    => "1" 
    }, 
    { 
     'id'     => "4", 
     'off_percentage'  => "100", 
     'quantity'    => "1" 
    } 
    ] 
+0

ありがとうございます!完璧に働いて、本当の問題を理解しました! –

関連する問題