-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathdriven_test.go
More file actions
executable file
·97 lines (79 loc) · 2.1 KB
/
Copy pathdriven_test.go
File metadata and controls
executable file
·97 lines (79 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// Copyright (C) 2021 CGI France
//
// This file is part of LINO.
//
// LINO is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// LINO is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with LINO. If not, see <http://www.gnu.org/licenses/>.
package push_test
import (
"fmt"
"github.com/cgi-fr/lino/pkg/push"
"github.com/rs/zerolog/log"
)
type rowIterator struct {
limit uint
row push.Row
}
func (ri *rowIterator) Error() *push.Error {
return nil
}
func (ri *rowIterator) Value() *push.Row {
return &ri.row
}
func (ri *rowIterator) Next() bool {
if ri.limit == 0 {
return false
}
ri.limit--
return true
}
func (ri *rowIterator) Close() *push.Error {
return nil
}
type memoryDataDestination struct {
tables map[string]*rowWriter
closed bool
committed bool
opened bool
commits int
}
func (mdd *memoryDataDestination) SafeUrl() string {
return "mem://test"
}
func (mdd *memoryDataDestination) RowWriter(table push.Table) (push.RowWriter, *push.Error) {
return mdd.tables[table.Name()], nil
}
func (mdd *memoryDataDestination) OpenSQLLogger(string) error {
return nil
}
func (mdd *memoryDataDestination) Open(pla push.Plan, mode push.Mode, disableConstraints bool, where string) *push.Error {
mdd.opened = true
return nil
}
func (mdd *memoryDataDestination) Commit() *push.Error {
mdd.committed = true
mdd.commits++
return nil
}
func (mdd *memoryDataDestination) Close() *push.Error {
mdd.closed = true
return nil
}
type rowWriter struct {
rows []push.Row
}
func (rw *rowWriter) Write(row push.Row, where push.Row) *push.Error {
log.Trace().Msg(fmt.Sprintf("append row %s to %s", row, rw.rows))
rw.rows = append(rw.rows, row)
return nil
}