-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.sh
More file actions
101 lines (81 loc) · 2.55 KB
/
test.sh
File metadata and controls
101 lines (81 loc) · 2.55 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
98
99
100
101
#!/bin/bash
# DbCli Test Script for Bash
if [ -z "${DBCLI:-}" ]; then
if command -v dbcli >/dev/null 2>&1; then
DBCLI="dbcli"
else
echo "ERROR: dbcli not found in PATH. Install DbCli and add PATH first." >&2
exit 1
fi
fi
# Set connection via environment variables
export DBCLI_CONNECTION="Data Source=test_bash.db"
export DBCLI_DBTYPE="sqlite"
echo "=== DbCli Test Script ==="
echo ""
# Clean up
rm -f test_bash.db
# Test 1: Create table
echo "1. Creating table..."
$DBCLI ddl "CREATE TABLE Products (Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT NOT NULL, Price REAL, Stock INTEGER)"
# Test 2: Insert data
echo ""
echo "2. Inserting data..."
$DBCLI exec "INSERT INTO Products (Name, Price, Stock) VALUES ('Apple', 1.99, 100)"
$DBCLI exec "INSERT INTO Products (Name, Price, Stock) VALUES ('Banana', 0.99, 150)"
$DBCLI exec "INSERT INTO Products (Name, Price, Stock) VALUES ('Orange', 2.49, 80)"
# Test 2b: Parameterized query
echo ""
echo "2b. Parameterized query..."
$DBCLI query "SELECT * FROM Products WHERE Stock > @MinStock" -p '{"MinStock":90}'
# Test 2c: Backup before DML
echo ""
echo "2c. Backup before DML..."
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p backups
$DBCLI export Products > "backups/Products_backup_${TIMESTAMP}.sql"
echo "Backup written: backups/Products_backup_${TIMESTAMP}.sql"
# Test 2d: Parameterized exec (UPDATE)
echo ""
echo "2d. Parameterized exec (UPDATE)..."
$DBCLI exec "UPDATE Products SET Stock = Stock + @Delta WHERE Name = @Name" -p '{"Delta":5,"Name":"Apple"}'
# Test 2e: Parameterized exec (DELETE + IN)
echo ""
echo "2e. Parameterized exec (DELETE + IN)..."
$DBCLI exec "DELETE FROM Products WHERE Id IN (@Ids)" -p '{"Ids":[999]}'
# Test 3: Query data (JSON)
echo ""
echo "3. Query data (JSON):"
$DBCLI query "SELECT * FROM Products"
# Test 4: Query data (Table)
echo ""
echo "4. Query data (Table):"
$DBCLI query "SELECT * FROM Products" -f table
# Test 5: Query data (CSV)
echo ""
echo "5. Query data (CSV):"
$DBCLI query "SELECT * FROM Products" -f csv
# Test 6: List tables
echo ""
echo "6. List tables:"
$DBCLI tables -f table
# Test 7: Show columns
echo ""
echo "7. Show columns:"
$DBCLI columns Products -f table
# Test 8: Update data
echo ""
echo "8. Update data:"
$DBCLI exec "UPDATE Products SET Price = Price * 1.1 WHERE Stock < 100"
# Test 9: Query updated data
echo ""
echo "9. Query after update:"
$DBCLI query "SELECT * FROM Products" -f table
# Test 10: Export data
echo ""
echo "10. Export data:"
$DBCLI export Products
echo ""
echo "11. SQL Server tests are in test_localdb.ps1"
echo ""
echo "=== All tests completed ==="