|
397 | 397 | end
|
398 | 398 |
|
399 | 399 | describe "when serialising a packet with a short topic id type" do
|
400 |
| - it "should output the correct bytes for a publish packet" do |
| 400 | + it "should output the correct bytes for a publish packet of QoS -1" do |
401 | 401 | packet = MQTT::SN::Packet::Publish.new(
|
| 402 | + :qos => -1, |
| 403 | + :topic_id => 'tt', |
| 404 | + :topic_id_type => :short, |
| 405 | + :data => "Hello World" |
| 406 | + ) |
| 407 | + expect(packet.to_s).to eq("\x12\x0C\x62tt\x00\x00Hello World") |
| 408 | + end |
| 409 | + |
| 410 | + it "should output the correct bytes for a publish packet of QoS 0" do |
| 411 | + packet = MQTT::SN::Packet::Publish.new( |
| 412 | + :qos => 0, |
402 | 413 | :topic_id => 'tt',
|
403 | 414 | :topic_id_type => :short,
|
404 | 415 | :data => "Hello World"
|
405 | 416 | )
|
406 | 417 | expect(packet.to_s).to eq("\x12\x0C\x02tt\x00\x00Hello World")
|
407 | 418 | end
|
| 419 | + |
| 420 | + it "should output the correct bytes for a publish packet of QoS 1" do |
| 421 | + packet = MQTT::SN::Packet::Publish.new( |
| 422 | + :qos => 1, |
| 423 | + :topic_id => 'tt', |
| 424 | + :topic_id_type => :short, |
| 425 | + :data => "Hello World" |
| 426 | + ) |
| 427 | + expect(packet.to_s).to eq("\x12\x0C\x22tt\x00\x00Hello World") |
| 428 | + end |
| 429 | + |
| 430 | + it "should output the correct bytes for a publish packet of QoS 2" do |
| 431 | + packet = MQTT::SN::Packet::Publish.new( |
| 432 | + :qos => 2, |
| 433 | + :topic_id => 'tt', |
| 434 | + :topic_id_type => :short, |
| 435 | + :data => "Hello World" |
| 436 | + ) |
| 437 | + expect(packet.to_s).to eq("\x12\x0C\x42tt\x00\x00Hello World") |
| 438 | + end |
408 | 439 | end
|
409 | 440 |
|
410 | 441 | describe "when parsing a Publish packet with a normal topic id" do
|
|
486 | 517 | expect(@packet.data).to eq("Hello World")
|
487 | 518 | end
|
488 | 519 | end
|
| 520 | + |
| 521 | + describe "when parsing a Publish packet with a short topic id and QoS -1" do |
| 522 | + before(:each) do |
| 523 | + @packet = MQTT::SN::Packet.parse( |
| 524 | + "\x12\x0C\x62tt\x00\x00Hello World" |
| 525 | + ) |
| 526 | + end |
| 527 | + |
| 528 | + it "should correctly create the right type of packet object" do |
| 529 | + expect(@packet.class).to eq(MQTT::SN::Packet::Publish) |
| 530 | + end |
| 531 | + |
| 532 | + it "should set the QOS of the packet correctly" do |
| 533 | + expect(@packet.qos).to be === -1 |
| 534 | + end |
| 535 | + |
| 536 | + it "should set the QOS of the packet correctly" do |
| 537 | + expect(@packet.duplicate).to be === false |
| 538 | + end |
| 539 | + |
| 540 | + it "should set the retain flag of the packet correctly" do |
| 541 | + expect(@packet.retain).to be === false |
| 542 | + end |
| 543 | + |
| 544 | + it "should set the topic id type of the packet correctly" do |
| 545 | + expect(@packet.topic_id_type).to be === :short |
| 546 | + end |
| 547 | + |
| 548 | + it "should set the topic id of the packet correctly" do |
| 549 | + expect(@packet.topic_id).to be === 'tt' |
| 550 | + end |
| 551 | + |
| 552 | + it "should set the message id of the packet correctly" do |
| 553 | + expect(@packet.id).to be === 0x0000 |
| 554 | + end |
| 555 | + |
| 556 | + it "should set the topic name of the packet correctly" do |
| 557 | + expect(@packet.data).to eq("Hello World") |
| 558 | + end |
| 559 | + end |
489 | 560 | end
|
490 | 561 |
|
491 | 562 |
|
|
0 commit comments