filegdb 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +18 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE +28 -0
  6. data/Makefile +12 -0
  7. data/README.md +27 -0
  8. data/Rakefile +24 -0
  9. data/ext/filegdb/base.hpp +126 -0
  10. data/ext/filegdb/extconf.rb +13 -0
  11. data/ext/filegdb/filegdb.cpp +27 -0
  12. data/ext/filegdb/filegdb.hpp +44 -0
  13. data/ext/filegdb/filegdb/include/FileGDBAPI.h +30 -0
  14. data/ext/filegdb/filegdb/include/FileGDBCore.h +226 -0
  15. data/ext/filegdb/filegdb/include/Geodatabase.h +291 -0
  16. data/ext/filegdb/filegdb/include/GeodatabaseManagement.h +79 -0
  17. data/ext/filegdb/filegdb/include/Raster.h +101 -0
  18. data/ext/filegdb/filegdb/include/Row.h +336 -0
  19. data/ext/filegdb/filegdb/include/Table.h +296 -0
  20. data/ext/filegdb/filegdb/include/Util.h +936 -0
  21. data/ext/filegdb/filegdb/include/make.include +98 -0
  22. data/ext/filegdb/filegdb/lib/libFileGDBAPI.dylib +0 -0
  23. data/ext/filegdb/filegdb/lib/libFileGDBAPI.so +0 -0
  24. data/ext/filegdb/filegdb/lib/libfgdbunixrtl.dylib +0 -0
  25. data/ext/filegdb/filegdb/lib/libfgdbunixrtl.so +0 -0
  26. data/ext/filegdb/geodatabase.cpp +529 -0
  27. data/ext/filegdb/geodatabase.hpp +53 -0
  28. data/ext/filegdb/multi_point_shape_buffer.cpp +254 -0
  29. data/ext/filegdb/multi_point_shape_buffer.hpp +35 -0
  30. data/ext/filegdb/point.cpp +44 -0
  31. data/ext/filegdb/point.hpp +31 -0
  32. data/ext/filegdb/point_shape_buffer.cpp +162 -0
  33. data/ext/filegdb/point_shape_buffer.hpp +32 -0
  34. data/ext/filegdb/row.cpp +222 -0
  35. data/ext/filegdb/row.hpp +37 -0
  36. data/ext/filegdb/shape_buffer.cpp +19 -0
  37. data/ext/filegdb/shape_buffer.hpp +20 -0
  38. data/ext/filegdb/shape_buffer_base.hpp +33 -0
  39. data/ext/filegdb/table.cpp +65 -0
  40. data/ext/filegdb/table.hpp +29 -0
  41. data/ext/filegdb/util.cpp +16 -0
  42. data/filegdb.gemspec +23 -0
  43. data/lib/filegdb.rb +2 -0
  44. data/lib/filegdb/version.rb +3 -0
  45. data/spec/data/domain_definition.xml +22 -0
  46. data/spec/data/domain_definition_altered.xml +26 -0
  47. data/spec/data/feature_dataset_definition.xml +25 -0
  48. data/spec/data/table_definition.xml +177 -0
  49. data/spec/filegdb_spec.rb +36 -0
  50. data/spec/geodatabase_spec.rb +107 -0
  51. data/spec/multi_point_shape_buffer_spec.rb +58 -0
  52. data/spec/point_shape_buffer_spec.rb +39 -0
  53. data/spec/row_spec.rb +76 -0
  54. data/spec/spec_helper.rb +41 -0
  55. metadata +153 -0
@@ -0,0 +1,16 @@
1
+ #include "filegdb.hpp"
2
+
3
+ std::wstring to_wstring(const char *input) {
4
+ std::string converted(input);
5
+ return std::wstring(converted.begin(), converted.end());
6
+ }
7
+
8
+ const char* to_char_array(std::wstring str) {
9
+ return std::string(str.begin(), str.end()).c_str();
10
+ }
11
+
12
+ const char *fgdb_error_string(fgdbError hr) {
13
+ wstring errorText;
14
+ ErrorInfo::GetErrorDescription(hr, errorText);
15
+ return to_char_array(errorText);
16
+ }
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/filegdb/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Zac McCormick"]
6
+ gem.email = ["zac.mccormick@gmail.com"]
7
+ gem.description = %q{ESRI FileGDB bindings for ruby}
8
+ gem.summary = %q{ESRI FileGDB bindings for ruby. Currently contains native extensions for FileGDB API 1.3}
9
+ gem.homepage = "https://github.com/spatialnetworks/filegdb-ruby"
10
+ gem.licenses = ['BSD']
11
+
12
+ gem.files = `git ls-files`.split($\)
13
+ gem.extensions = ['ext/filegdb/extconf.rb']
14
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.name = "filegdb"
17
+ gem.require_paths = ['lib', 'ext']
18
+ gem.version = FileGDB::VERSION
19
+
20
+ gem.add_development_dependency 'rake', ['>= 0']
21
+ gem.add_development_dependency 'rake-compiler', ['>= 0']
22
+ gem.add_development_dependency 'rspec', ['>= 0']
23
+ end
@@ -0,0 +1,2 @@
1
+ require 'filegdb/version'
2
+ require 'filegdb/filegdb'
@@ -0,0 +1,3 @@
1
+ module FileGDB
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,22 @@
1
+ <esri:Domain xsi:type='esri:CodedValueDomain' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:esri='http://www.esri.com/schemas/ArcGIS/10.1'>
2
+ <DomainName>RoadSurfaceType</DomainName>
3
+ <FieldType>esriFieldTypeInteger</FieldType>
4
+ <MergePolicy>esriMPTDefaultValue</MergePolicy>
5
+ <SplitPolicy>esriSPTDefaultValue</SplitPolicy>
6
+ <Description>The road surface type</Description>
7
+ <Owner></Owner>
8
+ <CodedValues xsi:type='esri:ArrayOfCodedValue'>
9
+ <CodedValue xsi:type='esri:CodedValue'>
10
+ <Name>Asphalt</Name>
11
+ <Code xsi:type='xs:int'>1</Code>
12
+ </CodedValue>
13
+ <CodedValue xsi:type='esri:CodedValue'>
14
+ <Name>Gravel</Name>
15
+ <Code xsi:type='xs:int'>2</Code>
16
+ </CodedValue>
17
+ <CodedValue xsi:type='esri:CodedValue'>
18
+ <Name>Dirt</Name>
19
+ <Code xsi:type='xs:int'>4</Code>
20
+ </CodedValue>
21
+ </CodedValues>
22
+ </esri:Domain>
@@ -0,0 +1,26 @@
1
+ <esri:Domain xsi:type='esri:CodedValueDomain' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:esri='http://www.esri.com/schemas/ArcGIS/10.1'>
2
+ <DomainName>RoadSurfaceType</DomainName>
3
+ <FieldType>esriFieldTypeInteger</FieldType>
4
+ <MergePolicy>esriMPTDefaultValue</MergePolicy>
5
+ <SplitPolicy>esriSPTDefaultValue</SplitPolicy>
6
+ <Description>The road surface type</Description>
7
+ <Owner></Owner>
8
+ <CodedValues xsi:type='esri:ArrayOfCodedValue'>
9
+ <CodedValue xsi:type='esri:CodedValue'>
10
+ <Name>Asphalt</Name>
11
+ <Code xsi:type='xs:int'>1</Code>
12
+ </CodedValue>
13
+ <CodedValue xsi:type='esri:CodedValue'>
14
+ <Name>Gravel</Name>
15
+ <Code xsi:type='xs:int'>2</Code>
16
+ </CodedValue>
17
+ <CodedValue xsi:type='esri:CodedValue'>
18
+ <Name>Mud</Name>
19
+ <Code xsi:type='xs:int'>3</Code>
20
+ </CodedValue>
21
+ <CodedValue xsi:type='esri:CodedValue'>
22
+ <Name>Dirt</Name>
23
+ <Code xsi:type='xs:int'>4</Code>
24
+ </CodedValue>
25
+ </CodedValues>
26
+ </esri:Domain>
@@ -0,0 +1,25 @@
1
+ <esri:DataElement xsi:type='esri:DEFeatureDataset' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:esri='http://www.esri.com/schemas/ArcGIS/10.1'>
2
+ <CatalogPath>\Test</CatalogPath>
3
+ <Name>TestFeatureDataset</Name>
4
+ <ChildrenExpanded>false</ChildrenExpanded>
5
+ <DatasetType>esriDTFeatureDataset</DatasetType>
6
+ <Versioned>false</Versioned>
7
+ <CanVersion>false</CanVersion>
8
+ <Extent xsi:nil="true"/>
9
+ <SpatialReference xsi:type="esri:GeographicCoordinateSystem">
10
+ <WKT>GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</WKT>
11
+ <XOrigin>-399.99999999999989</XOrigin>
12
+ <YOrigin>-399.99999999999989</YOrigin>
13
+ <XYScale>11258999068426.24</XYScale>
14
+ <ZOrigin>-100000</ZOrigin>
15
+ <ZScale>10000</ZScale>
16
+ <MOrigin>-100000</MOrigin>
17
+ <MScale>10000</MScale>
18
+ <XYTolerance>8.9831528411952133e-009</XYTolerance>
19
+ <ZTolerance>0.001</ZTolerance>
20
+ <MTolerance>0.001</MTolerance>
21
+ <HighPrecision>true</HighPrecision>
22
+ <LeftLongitude>-180</LeftLongitude>
23
+ <WKID>4326</WKID>
24
+ </SpatialReference>
25
+ </esri:DataElement>
@@ -0,0 +1,177 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <esri:DataElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:esri="http://www.esri.com/schemas/ArcGIS/10.1" xsi:type="esri:DEFeatureClass">
3
+ <CatalogPath>\Table</CatalogPath>
4
+ <Name>TestTable</Name>
5
+ <ChildrenExpanded>false</ChildrenExpanded>
6
+ <DatasetType>esriDTFeatureClass</DatasetType>
7
+ <Versioned>false</Versioned>
8
+ <CanVersion>false</CanVersion>
9
+ <ConfigurationKeyword/>
10
+ <HasOID>true</HasOID>
11
+ <OIDFieldName>OBJECTID</OIDFieldName>
12
+ <Fields xsi:type="esri:Fields">
13
+ <FieldArray xsi:type="esri:ArrayOfField">
14
+ <Field xsi:type="esri:Field">
15
+ <Name>OBJECTID</Name>
16
+ <Type>esriFieldTypeOID</Type>
17
+ <IsNullable>false</IsNullable>
18
+ <Length>4</Length>
19
+ <Precision>0</Precision>
20
+ <Scale>0</Scale>
21
+ <Required>true</Required>
22
+ <Editable>false</Editable>
23
+ <AliasName>OBJECTID</AliasName>
24
+ <ModelName>OBJECTID</ModelName>
25
+ </Field>
26
+ <Field xsi:type="esri:Field">
27
+ <Name>geometry</Name>
28
+ <Type>esriFieldTypeGeometry</Type>
29
+ <IsNullable>true</IsNullable>
30
+ <Length>0</Length>
31
+ <Precision>0</Precision>
32
+ <Scale>0</Scale>
33
+ <Required>true</Required>
34
+ <GeometryDef xsi:type="esri:GeometryDef">
35
+ <AvgNumPoints>0</AvgNumPoints>
36
+ <GeometryType>esriGeometryPoint</GeometryType>
37
+ <HasM>false</HasM>
38
+ <HasZ>false</HasZ>
39
+ <SpatialReference xsi:type="esri:GeographicCoordinateSystem">
40
+ <WKT>GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</WKT>
41
+ <XOrigin>-399.99999999999989</XOrigin>
42
+ <YOrigin>-399.99999999999989</YOrigin>
43
+ <XYScale>11258999068426.24</XYScale>
44
+ <ZOrigin>-100000</ZOrigin>
45
+ <ZScale>10000</ZScale>
46
+ <MOrigin>-100000</MOrigin>
47
+ <MScale>10000</MScale>
48
+ <XYTolerance>8.9831528411952133e-009</XYTolerance>
49
+ <ZTolerance>0.001</ZTolerance>
50
+ <MTolerance>0.001</MTolerance>
51
+ <HighPrecision>true</HighPrecision>
52
+ <LeftLongitude>-180</LeftLongitude>
53
+ <WKID>4326</WKID>
54
+ </SpatialReference>
55
+ <GridSize0>0</GridSize0>
56
+ </GeometryDef>
57
+ <AliasName>geometry</AliasName>
58
+ <ModelName>geometry</ModelName>
59
+ </Field>
60
+ <Field xsi:type="esri:Field">
61
+ <Name>string_field</Name>
62
+ <Type>esriFieldTypeString</Type>
63
+ <IsNullable>true</IsNullable>
64
+ <Length>4000</Length>
65
+ <Precision>0</Precision>
66
+ <Scale>0</Scale>
67
+ <AliasName>string_field</AliasName>
68
+ <ModelName>string_field</ModelName>
69
+ </Field>
70
+ </FieldArray>
71
+ </Fields>
72
+ <Indexes xsi:type="esri:Indexes">
73
+ <IndexArray xsi:type="esri:ArrayOfIndex">
74
+ <Index xsi:type="esri:Index">
75
+ <Name>FDO_OBJECTID</Name>
76
+ <IsUnique>true</IsUnique>
77
+ <IsAscending>true</IsAscending>
78
+ <Fields xsi:type="esri:Fields">
79
+ <FieldArray xsi:type="esri:ArrayOfField">
80
+ <Field xsi:type="esri:Field">
81
+ <Name>OBJECTID</Name>
82
+ <Type>esriFieldTypeOID</Type>
83
+ <IsNullable>false</IsNullable>
84
+ <Length>4</Length>
85
+ <Precision>0</Precision>
86
+ <Scale>0</Scale>
87
+ <Required>true</Required>
88
+ <Editable>false</Editable>
89
+ <AliasName>OBJECTID</AliasName>
90
+ <ModelName>OBJECTID</ModelName>
91
+ </Field>
92
+ </FieldArray>
93
+ </Fields>
94
+ </Index>
95
+ <Index xsi:type="esri:Index">
96
+ <Name>FDO_SHAPE</Name>
97
+ <IsUnique>false</IsUnique>
98
+ <IsAscending>true</IsAscending>
99
+ <Fields xsi:type="esri:Fields">
100
+ <FieldArray xsi:type="esri:ArrayOfField">
101
+ <Field xsi:type="esri:Field">
102
+ <Name>geometry</Name>
103
+ <Type>esriFieldTypeGeometry</Type>
104
+ <IsNullable>true</IsNullable>
105
+ <Length>0</Length>
106
+ <Precision>0</Precision>
107
+ <Scale>0</Scale>
108
+ <Required>true</Required>
109
+ <GeometryDef xsi:type="esri:GeometryDef">
110
+ <AvgNumPoints>0</AvgNumPoints>
111
+ <GeometryType>esriGeometryPoint</GeometryType>
112
+ <HasM>false</HasM>
113
+ <HasZ>false</HasZ>
114
+ <SpatialReference xsi:type="esri:GeographicCoordinateSystem">
115
+ <WKT>GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</WKT>
116
+ <XOrigin>-399.99999999999989</XOrigin>
117
+ <YOrigin>-399.99999999999989</YOrigin>
118
+ <XYScale>11258999068426.24</XYScale>
119
+ <ZOrigin>-100000</ZOrigin>
120
+ <ZScale>10000</ZScale>
121
+ <MOrigin>-100000</MOrigin>
122
+ <MScale>10000</MScale>
123
+ <XYTolerance>8.9831528411952133e-009</XYTolerance>
124
+ <ZTolerance>0.001</ZTolerance>
125
+ <MTolerance>0.001</MTolerance>
126
+ <HighPrecision>true</HighPrecision>
127
+ <LeftLongitude>-180</LeftLongitude>
128
+ <WKID>4326</WKID>
129
+ </SpatialReference>
130
+ <GridSize0>0</GridSize0>
131
+ </GeometryDef>
132
+ <AliasName>geometry</AliasName>
133
+ <ModelName>geometry</ModelName>
134
+ </Field>
135
+ </FieldArray>
136
+ </Fields>
137
+ </Index>
138
+ </IndexArray>
139
+ </Indexes>
140
+ <CLSID>{52353152-891A-11D0-BEC6-00805F7C4268}</CLSID>
141
+ <EXTCLSID/>
142
+ <RelationshipClassNames xsi:type="esri:Names"/>
143
+ <AliasName>TableAlias</AliasName>
144
+ <ModelName/>
145
+ <HasGlobalID>false</HasGlobalID>
146
+ <GlobalIDFieldName/>
147
+ <RasterFieldName/>
148
+ <ExtensionProperties xsi:type="esri:PropertySet">
149
+ <PropertyArray xsi:type="esri:ArrayOfPropertySetProperty"/>
150
+ </ExtensionProperties>
151
+ <ControllerMemberships xsi:type="esri:ArrayOfControllerMembership"/>
152
+ <FeatureType>esriFTSimple</FeatureType>
153
+ <ShapeType>esriGeometryPoint</ShapeType>
154
+ <ShapeFieldName>geometry</ShapeFieldName>
155
+ <HasM>false</HasM>
156
+ <HasZ>false</HasZ>
157
+ <HasSpatialIndex>true</HasSpatialIndex>
158
+ <AreaFieldName/>
159
+ <LengthFieldName/>
160
+ <Extent xsi:nil="true"/>
161
+ <SpatialReference xsi:type="esri:GeographicCoordinateSystem">
162
+ <WKT>GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</WKT>
163
+ <XOrigin>-399.99999999999989</XOrigin>
164
+ <YOrigin>-399.99999999999989</YOrigin>
165
+ <XYScale>11258999068426.24</XYScale>
166
+ <ZOrigin>-100000</ZOrigin>
167
+ <ZScale>10000</ZScale>
168
+ <MOrigin>-100000</MOrigin>
169
+ <MScale>10000</MScale>
170
+ <XYTolerance>8.9831528411952133e-009</XYTolerance>
171
+ <ZTolerance>0.001</ZTolerance>
172
+ <MTolerance>0.001</MTolerance>
173
+ <HighPrecision>true</HighPrecision>
174
+ <LeftLongitude>-180</LeftLongitude>
175
+ <WKID>4326</WKID>
176
+ </SpatialReference>
177
+ </esri:DataElement>
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe "FileGDB" do
4
+ before(:all) do
5
+ delete_database rescue nil
6
+ end
7
+
8
+ after(:each) do
9
+ delete_database rescue nil
10
+ end
11
+
12
+ after(:all) do
13
+ delete_database rescue nil
14
+ end
15
+
16
+ it 'creates a new gdb' do
17
+ db = create_database
18
+ db.should_not be_nil
19
+ db.close
20
+ end
21
+
22
+ it 'opens an existing gdb' do
23
+ db = create_database
24
+ db.close
25
+ db = open_database
26
+ db.should_not be_nil
27
+ db.close
28
+ end
29
+
30
+ it 'creates a new table' do
31
+ db = create_database
32
+ table = db.create_table('', table_definition)
33
+ table.should_not be_nil
34
+ db.close
35
+ end
36
+ end
@@ -0,0 +1,107 @@
1
+ require 'spec_helper'
2
+
3
+ describe "FileGDB" do
4
+ before(:all) do
5
+ delete_database rescue nil
6
+ end
7
+
8
+ before(:each) do
9
+ delete_database rescue nil
10
+ @db = create_database
11
+ @table = @db.create_table('', table_definition)
12
+ end
13
+
14
+ after(:each) do
15
+ delete_database rescue nil
16
+ end
17
+
18
+ after(:all) do
19
+ delete_database rescue nil
20
+ end
21
+
22
+ it 'gets the dataset types' do
23
+ @db.get_dataset_types.should have(32).items
24
+ end
25
+
26
+ it 'gets the dataset relationship types' do
27
+ @db.get_dataset_relationship_types.should have(16).items
28
+ end
29
+
30
+ it 'gets the child datasets' do
31
+ @db.get_child_datasets('', '').should have(0).items
32
+ end
33
+
34
+ it 'gets the related datasets' do
35
+ @db.get_related_datasets('', '', '').should have(0).items
36
+ end
37
+
38
+ it 'gets the dataset definition' do
39
+ @db.get_dataset_definition('\\TestTable', 'Table').length.should eq(7188)
40
+ end
41
+
42
+ it 'gets the dataset documentation' do
43
+ lambda { @db.get_dataset_documentation('\\TestTable', 'Table') }.should raise_error
44
+ end
45
+
46
+ it 'gets the child dataset definitions' do
47
+ @db.get_child_dataset_definitions('\\TestTable', 'Table').should have(0).items
48
+ end
49
+
50
+ it 'gets the related dataset definitions' do
51
+ @db.get_related_dataset_definitions('\\TestTable', '', 'Table').should have(0).items
52
+ end
53
+
54
+ it 'creates a feature dataset' do
55
+ lambda { @db.create_feature_dataset(feature_dataset_definition) }.should_not raise_error
56
+ end
57
+
58
+ it 'closes a table' do
59
+ lambda { @db.close_table(@table) }.should_not raise_error
60
+ end
61
+
62
+ it 'renames a table' do
63
+ lambda { @db.rename('\\TestTable', 'Table', 'TestTableNew') }.should_not raise_error
64
+ @db.get_dataset_definition('\\TestTableNew', 'Table').length.should eq(5839)
65
+ end
66
+
67
+ it 'moves a table' do
68
+ lambda { @db.move('TestTable', 'TestTable2') }.should raise_error
69
+ end
70
+
71
+ it 'deletes a table' do
72
+ @db.close_table(@table)
73
+ lambda { @db.delete('\\TestTable', 'Table') }.should_not raise_error
74
+ end
75
+
76
+ it 'creates a domain' do
77
+ lambda { @db.create_domain(domain_definition) }.should_not raise_error
78
+ end
79
+
80
+ it 'alters a domain' do
81
+ lambda { @db.create_domain(domain_definition) }.should_not raise_error
82
+ lambda { @db.alter_domain(domain_definition_altered) }.should_not raise_error
83
+ end
84
+
85
+ it 'deletes a domain' do
86
+ lambda { @db.create_domain(domain_definition) }.should_not raise_error
87
+ lambda { @db.delete_domain('RoadSurfaceType') }.should_not raise_error
88
+ end
89
+
90
+ it 'fails to delete a domain that does not exist' do
91
+ lambda { @db.create_domain(domain_definition) }.should_not raise_error
92
+ lambda { @db.delete_domain('ThisDomainDoesNotExist') }.should raise_error
93
+ end
94
+
95
+ it 'gets the domain definition' do
96
+ lambda { @db.create_domain(domain_definition) }.should_not raise_error
97
+ @db.get_domain_definition('RoadSurfaceType').should_not be_nil
98
+ end
99
+
100
+ it 'fails to get the domain definition when the domain does not exist' do
101
+ lambda { @db.get_domain_definition('ThisDomainDoesNotExist') }.should raise_error
102
+ end
103
+
104
+ it 'gets the query name of a table' do
105
+ @db.get_query_name('TestTable').should eq('TestTable')
106
+ end
107
+ end