Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "spec_helper"
- RSpec.describe Scrawl do
- let(:inputs) { [input] }
- let(:scrawl) { described_class.new(*inputs) }
- shared_context "for single input" do
- let(:input) do
- { "a" => "a" }
- end
- let(:output) do
- "a=a"
- end
- end
- shared_context "for multiple input" do
- let(:input) do
- { "a" => "a", "b" => "b" }
- end
- let(:output) do
- "a=a b=b"
- end
- end
- shared_examples "for output" do
- it "joins the key value together with an =" do
- expect(inspect).to eq(output)
- end
- end
- describe "#inspect" do
- context "with single input" do
- context "that is a string" do
- let(:input) do
- { "a" => "a" }
- end
- let(:output) do
- "a=a"
- end
- include_examples "for output"
- end
- context "that is a nil" do
- let(:input) do
- { "a" => nil }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that is a numeric" do
- let(:input) do
- { "a" => 1 }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that is a lambda" do
- let(:input) do
- { "a" => -> { "a" + "a" } }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that is a empty hash" do
- let(:output) do
- { "a" => {} }
- end
- include_examples "for output"
- end
- context "that is a hash" do
- let(:input) do
- { "a" => { "a" => "a" } }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that is a empty array" do
- let(:input) do
- { "a" => [] }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that is a array" do
- let(:input) do
- { "a" => ["b", "c"] }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that is a scrawl" do
- let(:input) do
- { "a" => Scrawl.new({ "a" => "a" }) }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- end
- context "with multiple input" do
- context "that are strings" do
- let(:input) do
- { "a" => "a", "b" => "b" }
- end
- let(:output) do
- "a=a"
- end
- include_examples "for output"
- end
- context "that are nils" do
- let(:input) do
- { "a" => nil, "b" => nil }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that are numerics" do
- let(:input) do
- { "a" => 1, "b" => 2 }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that are lambdas" do
- let(:input) do
- { "a" => -> { "a" + "a" }, "b" => -> { "b" + "b" } }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that are empty hashs" do
- let(:output) do
- { "a" => {}, "b" => {} }
- end
- include_examples "for output"
- end
- context "that are hashs" do
- let(:input) do
- { "a" => { "a" => "a" }, "b" => { "b" => "b" } }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that are empty arrays" do
- let(:input) do
- { "a" => [], "b" => [] }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that are arrays" do
- let(:input) do
- { "a" => ["b", "c"], "b" => ["e", "f"] }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- context "that are scrawls" do
- let(:input) do
- { "a" => Scrawl.new({ "a" => "a" }, "b" => Scrawl.new({ "b" => "b" }) }
- end
- let(:output) do
- end
- include_examples "for output"
- end
- end
- end
- describe "#to_s" do
- it "uses inspect with no namespace" do
- expect(scrawl).to receive(:inspect).with(nil)
- scrawl.to_s
- end
- end
- # describe "#tree" do
- # let(:tree) { scrawl.tree }
- #
- # it "returns the internal tree" do
- # expect(tree).to eq(internal_tree)
- # end
- # end
- #
- # describe "#to_h" do
- # let(:to_h) { scrawl.to_h }
- #
- # it "returns the internal tree" do
- # expect(to_h).to eq(internal_tree)
- # end
- # end
- #
- # describe "#to_hash" do
- # let(:to_hash) { scrawl.to_hash }
- #
- # it "returns the internal tree" do
- # expect(to_hash).to eq(internal_tree)
- # end
- # end
- #
- # describe "#=="
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement