Sha256: 50d50af5882e755f0d1530fec12fde6b32ae0d9a0443cd4300135a41f1704a3c

Contents?: true

Size: 1.63 KB

Versions: 3

Compression:

Stored size: 1.63 KB

Contents

# encoding: utf-8
require 'spec_helper'

def preview
  g = Graphviz::Diagram.new
  yield g if block_given?
  g.output png: 'preview.png' #, dot: 'preview.dot'
end

describe Graphviz::Diagram::ClassDiagram::Entity do
  subject { Graphviz::Diagram::ClassDiagram::Entity.new 'Superb Class' }
  describe '#label' do
    it 'holds name, attribute and methods' do
      subject.add_attribute('name')
      subject.add_attribute('description', visibility: :private)
      expect(subject.label).to eq("Superb Class|+ name \\l- description \\l|")
      subject.add_attribute('age', type: 'Integer')
      subject.add_method('say')
      subject.add_method('abort', arguments: 'attribute', type: 'String')
      # preview { |g| g << subject }
    end
  end
end

describe Graphviz::Diagram::ClassDiagram::Link do
  describe '#new' do
    it 'add field id to both side, if field specified' do
      e1 = Graphviz::Diagram::ClassDiagram::Entity.new 'Professor'
      e2 = Graphviz::Diagram::ClassDiagram::Entity.new 'Book'
      e1.add_attribute('name')
      e1.add_method('books')
      e2.add_attribute('title')
      e2.add_attribute('author')

      # preview do |g|
      #   g << e1
      #   g << e2
      #   g << e2.belongs_to(e1)
      #   g << g['Course'].embedded_in(g['Professor'])
      #   g << g['Classroom'].embedded_in(g['Professor'])
      # end
    end
  end
end

describe Graphviz::Diagram::ClassDiagram do
  describe '#graphviz' do
    it 'should be an instance of GraphViz' do
      expect(subject.graphviz).to be_instance_of(GraphViz)
    end

    it 'has rankdir equals LR' do
      expect(subject.graphviz['rankdir'].to_s).to eq('"LR"')
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
graphviz-diagram-0.0.3 spec/lib/graphviz/diagram/class_diagram_spec.rb
graphviz-diagram-0.0.2 spec/lib/graphviz/diagram/class_diagram_spec.rb
graphviz-diagram-0.0.1 spec/lib/graphviz/diagram/class_diagram_spec.rb