|
7 | 7 | let(:resolver) { double("Mongoid::Token::CollisionResolver") } |
8 | 8 |
|
9 | 9 | before(:each) do |
10 | | - resolver.stub(:field_name).and_return(:token) |
11 | | - resolver.stub(:create_new_token_for){|doc|} |
| 10 | + allow(resolver).to receive(:field_name).and_return(:token) |
| 11 | + allow(resolver).to receive(:create_new_token_for){|doc|} |
12 | 12 | document.class.send(:include, Mongoid::Token::Collisions) |
13 | | - document.stub(:is_duplicate_token_error?).and_return(true) |
14 | | - document.class.stub(:resolvers).and_return([resolver]) |
| 13 | + allow(document).to receive(:is_duplicate_token_error?).and_return(true) |
| 14 | + allow(document.class).to receive(:resolvers).and_return([resolver]) |
15 | 15 | end |
16 | 16 |
|
17 | 17 | context "and there are zero retries" do |
18 | 18 | it "should raise an error after the first try" do |
19 | | - resolver.stub(:retry_count).and_return(0) |
| 19 | + allow(resolver).to receive(:retry_count).and_return(0) |
20 | 20 | attempts = 0 |
21 | 21 | expect do |
22 | 22 | document.resolve_token_collisions do |
|
30 | 30 |
|
31 | 31 | context "and retries is set to 1" do |
32 | 32 | it "should raise an error after retrying once" do |
33 | | - resolver.stub(:retry_count).and_return(1) |
| 33 | + allow(resolver).to receive(:retry_count).and_return(1) |
34 | 34 | attempts = 0 |
35 | 35 | expect do |
36 | 36 | document.resolve_token_collisions do |
|
44 | 44 |
|
45 | 45 | context "and retries is greater than 1" do |
46 | 46 | it "should raise an error after retrying" do |
47 | | - resolver.stub(:retry_count).and_return(3) |
| 47 | + allow(resolver).to receive(:retry_count).and_return(3) |
48 | 48 | attempts = 0 |
49 | 49 | expect do |
50 | 50 | document.resolve_token_collisions do |
|
58 | 58 |
|
59 | 59 | context "and a different index is violated" do |
60 | 60 | it "should bubble the operation failure" do |
61 | | - document.stub(:is_duplicate_token_error?).and_return(false) |
62 | | - resolver.stub(:retry_count).and_return(3) |
| 61 | + allow(document).to receive(:is_duplicate_token_error?).and_return(false) |
| 62 | + allow(resolver).to receive(:retry_count).and_return(3) |
63 | 63 | e = Mongo::Error::OperationFailure.new("nope") |
64 | 64 | expect do |
65 | 65 | document.resolve_token_collisions { raise e } |
|
77 | 77 | it "should warn the rails logger" do |
78 | 78 | message = nil |
79 | 79 |
|
80 | | - stub_const("Rails", Class.new) |
| 80 | + stub_const('Rails', Class.new) |
81 | 81 |
|
82 | | - logger = double("logger") |
83 | | - logger.stub("warn"){ |msg| message = msg } |
84 | | - Rails.stub("logger").and_return(logger) |
| 82 | + logger = double('logger') |
| 83 | + allow(logger).to receive('warn') { |msg| message = msg } |
| 84 | + allow(Rails).to receive('logger').and_return(logger) |
85 | 85 |
|
86 | 86 | begin |
87 | 87 | document.raise_collision_retries_exceeded_error(:token, 3) |
|
103 | 103 | end |
104 | 104 | context "when there is a duplicate key error" do |
105 | 105 | it "should return true" do |
106 | | - document.stub("token").and_return("tokenvalue123") |
107 | | - err = double("Mongo::Error::OperationFailure") |
108 | | - err.stub("details").and_return do |
109 | | - { |
110 | | - "err" => "E11000 duplicate key error index: mongoid_token_test.links.$token_1 dup key: { : \"tokenvalue123\" }", |
111 | | - "code" => 11000, |
112 | | - "n" => 0, |
113 | | - "connectionId" => 130, |
114 | | - "ok" => 1.0 |
115 | | - } |
116 | | - document.is_duplicate_token_error?(err, document, :token) |
117 | | - end |
| 106 | + allow(document).to receive('token').and_return('tokenvalue123') |
| 107 | + err = double('Mongo::Error::OperationFailure') |
| 108 | + allow(err).to(receive('message') |
| 109 | + .and_return('insertDocument :: caused by :: 11000 E11000 duplicate key error index: mongoid_token_test.documents.$token_1 dup key: { : "tokenvalue123" } (11000) (on localhost:27017, legacy retry, attempt 1) (on localhost:27017, legacy retry, attempt 1)')) |
| 110 | + expect(document.is_duplicate_token_error?(err, document, :token)).to be(true) |
118 | 111 | end |
119 | 112 | end |
120 | 113 | end |
|
0 commit comments