~cgb-cs/appscale/appscale-main

« back to all changes in this revision

Viewing changes to AppController/test/tc_queue.rb

  • Committer: Chris Bunch
  • Date: 2012-02-27 07:19:48 UTC
  • Revision ID: cgb@cs.ucsb.edu-20120227071948-3uic3g1s3ph6cklo
added json validation for sqs interface, and regenerated coverage/rdoc

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
  end
23
23
 
24
24
  def test_task_queue_sqs
 
25
    string_creds = ""
 
26
    assert_raises(BadConfigurationException) {
 
27
      TaskQueueSQS.new(string_creds)
 
28
    }
 
29
 
25
30
    empty_credentials = {}
26
 
    assert_raises(BadConfigurationException) { TaskQueueSQS.new(empty_credentials) }
 
31
    assert_raises(BadConfigurationException) { 
 
32
      TaskQueueSQS.new(empty_credentials)
 
33
    }
 
34
 
 
35
    incomplete_creds = {'EC2_ACCESS_KEY' => 'baz'}
 
36
    assert_raises(BadConfigurationException) { 
 
37
      TaskQueueSQS.new(incomplete_creds) 
 
38
    }
27
39
 
28
40
    item = {'a' => 'b'}
29
41
    str_item = '{"a":"b"}'
30
42
 
31
 
    #flexmock(AWS::SQS).should_receive(:initialize).and_return()
32
 
 
33
43
    flexmock(AWS::SQS::QueueCollection).new_instances { |instance|
34
 
      instance.should_receive(:create).and_return()
 
44
      instance.should_receive(:create).and_return(flexmock(:send_message => nil, 
 
45
        :receive_message => flexmock(:body => str_item, :delete => nil)))
35
46
    }
36
 
    #sqs.should_receive(:initialize).and_return()
37
 
 
38
 
    #flexmock(AWS::SQS::Queue).new_instances { |instance|
39
 
    #  instance.should_receive(:send_message).and_return()
40
 
    #  instance.should_receive(:receive_message).with(item).and_return(str_item)
41
 
    #}
42
47
 
43
48
    full_credentials = {'EC2_ACCESS_KEY' => 'boo', 'EC2_SECRET_KEY' => 'baz'}
44
49
    q = TaskQueueSQS.new(full_credentials)
45
50
    assert_equal('boo', q.EC2_ACCESS_KEY)
46
51
    assert_equal('baz', q.EC2_SECRET_KEY)
47
52
 
48
 
    #q.push(item)
49
 
    #item2 = q.pop()
50
 
    #assert_equal(item, item2)
51
 
  end
 
53
    q.push(item)
 
54
    item2 = q.pop()
 
55
    assert_equal(item, item2)
 
56
  end
 
57
 
 
58
  def test_task_queue_sqs_gives_bad_info
 
59
    # Don't assume that we can always trust what SQS gives us - it may not
 
60
    # always JSON-able.
 
61
 
 
62
    item1 = "abcd"  # not JSON-able
 
63
    item2 = "true"  # is JSON-able
 
64
 
 
65
    a = flexmock("baz")
 
66
    a.should_receive(:body).times(2).and_return(item1, item2)
 
67
    a.should_receive(:delete).and_return()
 
68
 
 
69
    flexmock(AWS::SQS::QueueCollection).new_instances { |instance|
 
70
      instance.should_receive(:create).and_return(flexmock(:send_message => nil, 
 
71
        :receive_message => a))
 
72
    }
 
73
 
 
74
    full_credentials = {'EC2_ACCESS_KEY' => 'boo', 'EC2_SECRET_KEY' => 'baz'}
 
75
    q = TaskQueueSQS.new(full_credentials)
 
76
 
 
77
    q.pop()
 
78
  end
 
79
 
52
80
end