Sha256: d96d123918f3259c91d008023d2780dd481f0b200fccb115fa635bf5a5b44476
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
# encoding: utf-8 describe Informator::Subscriber do let(:callback) { "foo" } let(:event) { double } let(:listener) { double callback => callback, freeze: nil } let(:subscriber) { described_class.new listener, callback } describe ".new" do subject { subscriber } it { is_expected.to be_frozen } end # describe .new describe "#listener" do subject { subscriber.listener } it { is_expected.to eql listener } end # describe #listener describe "#callback" do subject { subscriber.callback } it { is_expected.to eql callback.to_sym } end # describe #callback describe "#==" do subject { subscriber == other } context "with the same listeners and callbacks" do let(:other) { described_class.new listener, callback } it { is_expected.to eql true } end # context context "with different listeners" do let(:other) { described_class.new double(freeze: nil), callback } it { is_expected.to eql false } end # context context "with different callbacks" do let(:other) { described_class.new listener, "other" } it { is_expected.to eql false } end # context end # describe #== describe "#notify" do subject { subscriber.notify event } it "sends event to listener via callback" do expect(listener).to receive(callback).with(event) subject end it { is_expected.to eql event } end # describe #notify end # describe Informator::Subscriber
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
informator-1.0.0 | spec/unit/informator/subscriber_spec.rb |