Commit 09a5eb9349bac41979f982207d3b2aba2c1c0fa3

Authored by LeandroNunes
1 parent 13506f04

ActionItem0: adding box itens



git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@30 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/box.rb 0 → 100644
... ... @@ -0,0 +1,9 @@
  1 +class Box < ActiveRecord::Base
  2 + belongs_to :owner, :polymorphic => true
  3 +
  4 + #we cannot have two boxs with the same number to the same owner
  5 + validates_uniqueness_of :number, :scope => :owner
  6 +
  7 + #<tt>number</tt> must be a integer
  8 + validates_numericality_of :number, :only_integer => true, :message => _('%{fn} must be composed only of integers.')
  9 +end
... ...
db/migrate/004_create_boxes.rb 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +class CreateBoxes < ActiveRecord::Migration
  2 + def self.up
  3 + create_table :boxes do |t|
  4 + t.column :number, :integer
  5 + t.column :owner_type, :string
  6 + t.column :owner_id, :integer
  7 + end
  8 + end
  9 +
  10 + def self.down
  11 + drop_table :boxes
  12 + end
  13 +end
... ...
test/fixtures/boxes.yml 0 → 100644
... ... @@ -0,0 +1,10 @@
  1 +# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
  2 +one:
  3 + id: 1
  4 + number: 1
  5 +two:
  6 + id: 2
  7 + number: 2
  8 +three:
  9 + id: 3
  10 + number: 3
... ...
test/unit/box_test.rb 0 → 100644
... ... @@ -0,0 +1,46 @@
  1 +require File.dirname(__FILE__) + '/../test_helper'
  2 +
  3 +class BoxTest < Test::Unit::TestCase
  4 + fixtures :boxes, :blocks
  5 +
  6 + def test_destroy
  7 + count = Box.count
  8 + assert Box.find(1).destroy
  9 + assert_equal count - 1, Box.count
  10 + end
  11 +
  12 + def test_create
  13 + count = Box.count
  14 + b = Box.new
  15 + b.number = 2
  16 + assert b.save
  17 + assert count + 1, Box.count
  18 + end
  19 +
  20 +
  21 + def test_number_format
  22 + b = Box.new
  23 + b.number = "none"
  24 + assert !b.valid?
  25 + assert b.errors.invalid?(:number)
  26 +
  27 + b = Box.new
  28 + b.number = 10.2
  29 + assert !b.save
  30 +
  31 + b = Box.new
  32 + b.number = 10
  33 + assert b.save
  34 +
  35 + end
  36 +
  37 + def test_unique_number
  38 + assert Box.delete_all
  39 + assert Box.create(:number => 1)
  40 +
  41 + b = Box.new(:number => 1)
  42 + assert !b.valid?
  43 + assert b.errors.invalid?(:number)
  44 + end
  45 +
  46 +end
... ...