1# Licensed to the Apache Software Foundation (ASF) under one
2# or more contributor license agreements.  See the NOTICE file
3# distributed with this work for additional information
4# regarding copyright ownership.  The ASF licenses this file
5# to you under the Apache License, Version 2.0 (the
6# "License"); you may not use this file except in compliance
7# with the License.  You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17using Arrow, Tables, Test
18
19include(joinpath(dirname(pathof(Arrow)), "../test/arrowjson.jl"))
20# using .ArrowJSON
21
22function runcommand(jsonname, arrowname, mode, verbose)
23    if jsonname == ""
24        error("must provide json file name")
25    end
26    if arrowname == ""
27        error("must provide arrow file name")
28    end
29
30    if mode == "ARROW_TO_JSON"
31        tbl = Arrow.Table(arrowname)
32        df = ArrowJSON.DataFile(tbl)
33        open(jsonname, "w") do io
34            JSON3.write(io, df)
35        end
36    elseif mode == "JSON_TO_ARROW"
37        df = ArrowJSON.parsefile(jsonname)
38        open(arrowname, "w") do io
39            Arrow.write(io, df)
40        end
41    elseif mode == "VALIDATE"
42        df = ArrowJSON.parsefile(jsonname)
43        tbl = Arrow.Table(arrowname)
44        @test isequal(df, tbl)
45    else
46        error("unknown integration test mode: $mode")
47    end
48    return
49end
50