Sha256: 92e8192d8a41c650ed19f6e1ab3e68cd37a49681f2d006713d348b8cf721b2bd

Contents?: true

Size: 1.18 KB

Versions: 13

Compression:

Stored size: 1.18 KB

Contents

require "spec_helper"
require "sie/parser/tokenizer"

describe Sie::Parser::Tokenizer do
  it "tokenizes the given line" do
    tokenizer = Sie::Parser::Tokenizer.new('#TRANS 2400 {} -200 20130101 "Foocorp expense"')
    tokens = tokenizer.tokenize

    expect(token_table_for(tokens)).to eq([
      [ "EntryToken", "TRANS" ],
      [ "StringToken", "2400" ],
      [ "BeginArrayToken", "" ],
      [ "EndArrayToken", "" ],
      [ "StringToken", "-200" ],
      [ "StringToken", "20130101" ],
      [ "StringToken", "Foocorp expense" ]
    ])
  end

  it "can parse metadata arrays" do
    tokenizer = Sie::Parser::Tokenizer.new('#TRANS 2400 { 1 "2" } -200 20130101 "Foocorp expense"')
    tokens = tokenizer.tokenize

    expect(token_table_for(tokens)).to eq([
      [ "EntryToken", "TRANS" ],
      [ "StringToken", "2400" ],
      [ "BeginArrayToken", "" ],
      [ "StringToken", "1" ],
      [ "StringToken", "2" ],
      [ "EndArrayToken", "" ],
      [ "StringToken", "-200" ],
      [ "StringToken", "20130101" ],
      [ "StringToken", "Foocorp expense" ]
    ])
  end

  def token_table_for(tokens)
    tokens.map { |token|
      [ token.class.name.split("::").last, token.value ]
    }
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
sie-3.1.1 spec/unit/parser/tokenizer_spec.rb
sie-3.0.1 spec/unit/parser/tokenizer_spec.rb
sie-3.0.0 spec/unit/parser/tokenizer_spec.rb
sie-2.2.0 spec/unit/parser/tokenizer_spec.rb
sie-2.1.0 spec/unit/parser/tokenizer_spec.rb
sie-2.0.0 spec/unit/parser/tokenizer_spec.rb
sie-1.0.6 spec/unit/parser/tokenizer_spec.rb
sie-1.0.5 spec/unit/parser/tokenizer_spec.rb
sie-1.0.4 spec/unit/parser/tokenizer_spec.rb
sie-1.0.3 spec/unit/parser/tokenizer_spec.rb
sie-1.0.2 spec/unit/parser/tokenizer_spec.rb
sie-1.0.1 spec/unit/parser/tokenizer_spec.rb
sie-1.0.0 spec/unit/parser/tokenizer_spec.rb