Class: MySQLExpectations::Matchers::DatabaseOnlyHaveTables
- Inherits:
-
Object
- Object
- MySQLExpectations::Matchers::DatabaseOnlyHaveTables
- Defined in:
- lib/mysql_expectations/matchers/database_only_have_tables.rb
Overview
A matcher that checks what tables are in a database
Instance Attribute Summary collapse
-
#actual_table_names ⇒ Object
readonly
Returns the value of attribute actual_table_names.
-
#database ⇒ Object
readonly
Returns the value of attribute database.
-
#expected_table_names ⇒ Object
readonly
Returns the value of attribute expected_table_names.
Instance Method Summary collapse
- #additional_tables_message ⇒ Object
- #description ⇒ Object
- #failure_message ⇒ Object
-
#initialize(*expected_table_names) ⇒ DatabaseOnlyHaveTables
constructor
A new instance of DatabaseOnlyHaveTables.
- #liquibase_tables ⇒ Object
- #matches?(database) ⇒ Boolean
- #missing_tables_message ⇒ Object
Constructor Details
#initialize(*expected_table_names) ⇒ DatabaseOnlyHaveTables
Returns a new instance of DatabaseOnlyHaveTables.
16 17 18 19 |
# 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 |
Instance Attribute Details
#actual_table_names ⇒ Object (readonly)
Returns the value of attribute actual_table_names.
14 15 16 |
# File 'lib/mysql_expectations/matchers/database_only_have_tables.rb', line 14 def actual_table_names @actual_table_names end |
#database ⇒ Object (readonly)
Returns the value of attribute database.
14 15 16 |
# File 'lib/mysql_expectations/matchers/database_only_have_tables.rb', line 14 def database @database end |
#expected_table_names ⇒ Object (readonly)
Returns the value of attribute expected_table_names.
14 15 16 |
# File 'lib/mysql_expectations/matchers/database_only_have_tables.rb', line 14 def expected_table_names @expected_table_names end |
Instance Method Details
#additional_tables_message ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/mysql_expectations/matchers/database_only_have_tables.rb', line 38 def = '' unless (actual_table_names - expected_table_names).empty? << ' but had additional tables: ' << (actual_table_names - expected_table_names).to_sentence end end |
#description ⇒ Object
34 35 36 |
# 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 ⇒ Object
58 59 60 61 62 63 64 65 |
# File 'lib/mysql_expectations/matchers/database_only_have_tables.rb', line 58 def = "expected '#{database.name}' " << 'database to only have tables ' << expected_table_names.to_sentence << << end |
#liquibase_tables ⇒ Object
21 22 23 |
# File 'lib/mysql_expectations/matchers/database_only_have_tables.rb', line 21 def liquibase_tables %w(DATABASECHANGELOG DATABASECHANGELOGLOCK) end |
#matches?(database) ⇒ Boolean
29 30 31 32 |
# 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 ⇒ Object
48 49 50 51 52 53 54 55 56 |
# File 'lib/mysql_expectations/matchers/database_only_have_tables.rb', line 48 def = '' unless (expected_table_names - actual_table_names).empty? << ' but was missing tables: ' << (expected_table_names - actual_table_names).to_sentence end end |