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.
- checksums.yaml +15 -0
- data/.gitignore +18 -0
- data/.travis.yml +4 -0
- data/Gemfile +3 -0
- data/LICENSE +28 -0
- data/Makefile +12 -0
- data/README.md +27 -0
- data/Rakefile +24 -0
- data/ext/filegdb/base.hpp +126 -0
- data/ext/filegdb/extconf.rb +13 -0
- data/ext/filegdb/filegdb.cpp +27 -0
- data/ext/filegdb/filegdb.hpp +44 -0
- data/ext/filegdb/filegdb/include/FileGDBAPI.h +30 -0
- data/ext/filegdb/filegdb/include/FileGDBCore.h +226 -0
- data/ext/filegdb/filegdb/include/Geodatabase.h +291 -0
- data/ext/filegdb/filegdb/include/GeodatabaseManagement.h +79 -0
- data/ext/filegdb/filegdb/include/Raster.h +101 -0
- data/ext/filegdb/filegdb/include/Row.h +336 -0
- data/ext/filegdb/filegdb/include/Table.h +296 -0
- data/ext/filegdb/filegdb/include/Util.h +936 -0
- data/ext/filegdb/filegdb/include/make.include +98 -0
- data/ext/filegdb/filegdb/lib/libFileGDBAPI.dylib +0 -0
- data/ext/filegdb/filegdb/lib/libFileGDBAPI.so +0 -0
- data/ext/filegdb/filegdb/lib/libfgdbunixrtl.dylib +0 -0
- data/ext/filegdb/filegdb/lib/libfgdbunixrtl.so +0 -0
- data/ext/filegdb/geodatabase.cpp +529 -0
- data/ext/filegdb/geodatabase.hpp +53 -0
- data/ext/filegdb/multi_point_shape_buffer.cpp +254 -0
- data/ext/filegdb/multi_point_shape_buffer.hpp +35 -0
- data/ext/filegdb/point.cpp +44 -0
- data/ext/filegdb/point.hpp +31 -0
- data/ext/filegdb/point_shape_buffer.cpp +162 -0
- data/ext/filegdb/point_shape_buffer.hpp +32 -0
- data/ext/filegdb/row.cpp +222 -0
- data/ext/filegdb/row.hpp +37 -0
- data/ext/filegdb/shape_buffer.cpp +19 -0
- data/ext/filegdb/shape_buffer.hpp +20 -0
- data/ext/filegdb/shape_buffer_base.hpp +33 -0
- data/ext/filegdb/table.cpp +65 -0
- data/ext/filegdb/table.hpp +29 -0
- data/ext/filegdb/util.cpp +16 -0
- data/filegdb.gemspec +23 -0
- data/lib/filegdb.rb +2 -0
- data/lib/filegdb/version.rb +3 -0
- data/spec/data/domain_definition.xml +22 -0
- data/spec/data/domain_definition_altered.xml +26 -0
- data/spec/data/feature_dataset_definition.xml +25 -0
- data/spec/data/table_definition.xml +177 -0
- data/spec/filegdb_spec.rb +36 -0
- data/spec/geodatabase_spec.rb +107 -0
- data/spec/multi_point_shape_buffer_spec.rb +58 -0
- data/spec/point_shape_buffer_spec.rb +39 -0
- data/spec/row_spec.rb +76 -0
- data/spec/spec_helper.rb +41 -0
- 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
|
+
}
|
data/filegdb.gemspec
ADDED
@@ -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
|
data/lib/filegdb.rb
ADDED
@@ -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
|