56 lines
2.1 KiB
Ruby
56 lines
2.1 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe LatencyTester do
|
|
|
|
let(:params) {{client_id: 'abc', ip_address: '10.1.1.1', connection_stale_time:40, connection_expire_time:60, channel_id: '1'} }
|
|
|
|
it "success" do
|
|
latency_tester = FactoryGirl.create(:latency_tester)
|
|
latency_tester.connection.should_not be_nil
|
|
latency_tester.connection.latency_tester.should_not be_nil
|
|
|
|
end
|
|
|
|
describe "connect" do
|
|
it "no existing latency tester" do
|
|
latency_tester = LatencyTester.connect(params)
|
|
latency_tester.errors.any?.should be_false
|
|
latency_tester.connection.ip_address.should == params[:ip_address]
|
|
latency_tester.connection.stale_time.should == params[:connection_stale_time]
|
|
latency_tester.connection.expire_time.should == params[:connection_expire_time]
|
|
end
|
|
|
|
it "existing latency tester, no connection" do
|
|
latency_tester = FactoryGirl.create(:latency_tester, client_id: params[:client_id], make_connection: false)
|
|
latency_tester.connection.should be_nil
|
|
|
|
latency_tester.client_id = params[:client_id]
|
|
latency_tester.save!
|
|
|
|
found = LatencyTester.connect(params)
|
|
found.should == latency_tester
|
|
found.connection.should_not be_nil
|
|
found.connection.aasm_state.should == Connection::CONNECT_STATE.to_s
|
|
found.connection.client_id.should == latency_tester.client_id
|
|
end
|
|
|
|
it "existing latency tester, existing connection" do
|
|
latency_tester = FactoryGirl.create(:latency_tester)
|
|
|
|
latency_tester.connection.aasm_state = Connection::STALE_STATE.to_s
|
|
latency_tester.save!
|
|
set_updated_at(latency_tester.connection, 1.days.ago)
|
|
|
|
params[:client_id] = latency_tester.connection.client_id
|
|
|
|
found = LatencyTester.connect(params)
|
|
found.should == latency_tester
|
|
found.connection.should == latency_tester.connection
|
|
# state should have refreshed from stale to connected
|
|
found.connection.aasm_state.should == Connection::CONNECT_STATE.to_s
|
|
# updated_at needs to be poked on connection to keep stale non-stale
|
|
(found.connection.updated_at - latency_tester.connection.updated_at).to_i.should == 60 * 60 * 24 # 1 day
|
|
end
|
|
end
|
|
end
|