Sha256: 5d3e3cbb90389a3781469ca39a98bb00d9b01fbf13862a3bb78f868865aab67f

Contents?: true

Size: 1.63 KB

Versions: 30

Compression:

Stored size: 1.63 KB

Contents

require 'test_helper'

class CassandraObject::Types::ArrayTypeTest < CassandraObject::Types::TestCase
  test 'encode' do
    assert_equal ['1', '2'].to_json, coder.encode(['1', '2'])
    
    assert_raise ArgumentError do
      coder.encode('wtf')
    end
  end

  test 'decode' do
    assert_equal ['1', '2'], coder.decode(['1', '2'].to_json)
    assert_equal [], coder.decode(nil)
    assert_equal [], coder.decode('')
  end

  class TestIssue < CassandraObject::Base
    key :uuid
    self.column_family = 'Issues'
    array :favorite_colors, unique: true
  end

  test 'append marks dirty' do
    issue = TestIssue.create favorite_colors: []
    assert !issue.changed?

    issue.favorite_colors << 'red'
    assert issue.changed?
    assert_equal({'favorite_colors' => [[], ['red']]}, issue.changes)
  end

  test 'delete marks dirty' do
    issue = TestIssue.create favorite_colors: ['red']
    assert !issue.changed?

    issue.favorite_colors.delete('red')
    assert issue.changed?
    assert_equal({'favorite_colors' => [['red'], []]}, issue.changes)
  end

  test 'unique array removes nil' do
    issue = TestIssue.create favorite_colors: ['blue', 'red', nil]
    assert_equal ['blue', 'red'], issue.favorite_colors
  end

  test 'unique array uniquifies' do
    issue = TestIssue.create favorite_colors: ['blue', 'red']
    
    issue.favorite_colors = ['red', 'red', 'blue']
    assert !issue.changed?
    
    issue.favorite_colors = ['red', 'green']
    assert issue.changed?
  end

  test 'unique array rescues argument error' do
    issue = TestIssue.create favorite_colors: [1, 'red']

    assert_equal [1, 'red'], issue.favorite_colors
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
gotime-cassandra_object-2.11.0 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.11 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.10 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.9 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.8 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.7 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.6 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.5 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.4 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.3 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.2 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.1 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.10.0 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.9.2 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.9.1 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.9.0 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.8.6 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.8.5 test/unit/types/array_type_test.rb
gotime-cassandra_object-2.8.4 test/types/array_type_test.rb
gotime-cassandra_object-2.8.3 test/types/array_type_test.rb