class MySQLExpectations::Matchers::DatabaseOnlyHaveTables
A matcher that checks what tables are in a database
Attributes
actual_table_names[R]
database[R]
expected_table_names[R]
Public Class Methods
new(*expected_table_names)
click to toggle source
# File lib/mysql_expectations/matchers/database_only_have_tables.rb, line 16 def initialize(*expected_table_names) @expected_table_names = expected_table_names.flatten @database = nil end
Public Instance Methods
additional_tables_message()
click to toggle source
# File lib/mysql_expectations/matchers/database_only_have_tables.rb, line 38 def additional_tables_message message = '' unless (actual_table_names - expected_table_names).empty? message << ' but had additional tables: ' message << (actual_table_names - expected_table_names).to_sentence end message end
description()
click to toggle source
# File lib/mysql_expectations/matchers/database_only_have_tables.rb, line 34 def description "only have tables #{expected_table_names.to_sentence}" end
failure_message()
click to toggle source
# File lib/mysql_expectations/matchers/database_only_have_tables.rb, line 58 def failure_message message = "expected '#{database.name}' " message << 'database to only have tables ' message << expected_table_names.to_sentence message << additional_tables_message message << missing_tables_message message end
liquibase_tables()
click to toggle source
# File lib/mysql_expectations/matchers/database_only_have_tables.rb, line 21 def liquibase_tables %w(DATABASECHANGELOG DATABASECHANGELOGLOCK) end
matches?(database)
click to toggle source
# File lib/mysql_expectations/matchers/database_only_have_tables.rb, line 29 def matches?(database) @database = database actual_table_names.sort == expected_table_names.sort end
missing_tables_message()
click to toggle source
# File lib/mysql_expectations/matchers/database_only_have_tables.rb, line 48 def missing_tables_message message = '' unless (expected_table_names - actual_table_names).empty? message << ' but was missing tables: ' message << (expected_table_names - actual_table_names).to_sentence end message end