Path: blob/master/spec/lib/rex/proto/kademlia/pong_spec.rb
19778 views
# -*- coding: binary -*-12require 'spec_helper'34RSpec.describe Rex::Proto::Kademlia::Pong do5let(:port) { 12345 }6subject(:pong) do7described_class.new(port)8end910describe '#initialize' do11it 'constructs properly' do12expect(pong.type).to eq(Rex::Proto::Kademlia::PONG)13expect(pong.port).to eq(port)14end15end1617describe '#to_str' do18it 'packs properly' do19expect(pong.to_str).to eq("\xE4\x61\x39\x30")20end21end2223describe '#from_data' do24it 'unpacks supported valid pongs properly' do25unpacked = described_class.from_data("\xE4\x61\x9E\x86")26expect(unpacked.type).to eq(Rex::Proto::Kademlia::PONG)27expect(unpacked.port).to eq(34462)28end2930it 'does not decode overly small pongs' do31expect(described_class.from_data("\xE4\x61\x01")).to eq(nil)32end3334it 'does not decode overly large pongs' do35expect(described_class.from_data("\xE4\x61\x01\x02\x03")).to eq(nil)36end37end38end394041