filegdb 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|