This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
DevOpsOpenHack/apis/trips/tripsgo/queries_test.go

417 lines
8.8 KiB
Go
Raw Normal View History

2022-11-03 20:41:13 +00:00
package tripsgo
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestUnitdeleteTripPointQuery(t *testing.T) {
//arrange
var expected = `UPDATE TripPoints
SET Deleted = 1
WHERE Id = '1234'`
//act
query := deleteTripPointQuery("1234")
//assert
if query != expected {
t.Errorf("Error \nExpected: %s \nGot: %s", expected, query)
}
}
func TestUnitupdateTripPointQuery(t *testing.T) {
//arrange
tripPoint := TripPoint{
ID: "abcd",
TripID: "a_trip",
Latitude: 51.5244282,
Longitude: -0.0784379,
Speed: 185.2,
RecordedTimeStamp: "a_timestamp",
Sequence: 1,
RPM: 4000,
ShortTermFuelBank: 1,
LongTermFuelBank: 2,
ThrottlePosition: 3,
RelativeThrottlePosition: 4,
Runtime: 5,
DistanceWithMalfunctionLight: 6,
EngineLoad: 7,
MassFlowRate: 8,
EngineFuelRate: 9,
HasOBDData: true,
HasSimulatedOBDData: false,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
Deleted: false,
}
var expected = `UPDATE [TripPoints]
SET [TripId] = 'a_trip',
[Latitude] = '%!s(float32=51.52443)',
[Longitude] = '%!s(float32=-0.0784379)',
[Speed] = '%!s(float32=185.2)',
[RecordedTimeStamp] = 'a_timestamp',
[Sequence] = 1,[RPM] = '%!s(float32=4000)',
[ShortTermFuelBank] = '%!s(float32=1)',
[LongTermFuelBank] = '%!s(float32=2)',
[ThrottlePosition] = '%!s(float32=3)',
[RelativeThrottlePosition] = '%!s(float32=4)',
[Runtime] = '%!s(float32=5)',
[DistanceWithMalfunctionLight] = '%!s(float32=6)',
[EngineLoad] = '%!s(float32=7)',
[MassFlowRate] = '%!s(float32=8)',
[EngineFuelRate] = '%!s(float32=9)',
[HasOBDData] = 'true',
[HasSimulatedOBDData] = 'false',
[VIN] = '{ %!s(bool=false)}'
WHERE Id = 'abcd'`
//act
query := updateTripPointQuery(tripPoint)
//assert
assert.Equal(t, expected, query)
}
func TestSelectAllTripsQueryUnit(t *testing.T) {
//arrange
var expected = `SELECT
Id,
Name,
UserId,
RecordedTimeStamp,
EndTimeStamp,
Rating,
IsComplete,
HasSimulatedOBDData,
AverageSpeed,
FuelUsed,
HardStops,
HardAccelerations,
Distance,
CreatedAt,
UpdatedAt
FROM Trips
WHERE Deleted = 0`
//act
query := SelectAllTripsQuery()
//assert
assert.Equal(t, expected, query)
}
func TestSelectAllTripsForUserQueryUnit(t *testing.T) {
//arrange
var expected = `SELECT
Id,
Name,
UserId,
RecordedTimeStamp,
EndTimeStamp,
Rating,
IsComplete,
HasSimulatedOBDData,
AverageSpeed,
FuelUsed,
HardStops,
HardAccelerations,
Distance,
CreatedAt,
UpdatedAt
FROM Trips
WHERE UserId ='fake_user'
AND Deleted = 0`
//act
query := SelectAllTripsForUserQuery("fake_user")
//assert
assert.Equal(t, expected, query)
}
func TestDeleteTripPointsForTripQueryUnit(t *testing.T) {
//arrange
var expected = `UPDATE TripPoints SET Deleted = 1 WHERE TripId = 'trip_123'`
//act
query := DeleteTripPointsForTripQuery("trip_123")
//assert
assert.Equal(t, expected, query)
}
func TestDeleteTripQueryUnit(t *testing.T) {
//arrange
var expected = `UPDAte Trips SET Deleted = 1 WHERE Id = 'trip_123'`
//act
query := DeleteTripQuery("trip_123")
//assert
assert.Equal(t, expected, query)
}
func TestSelectTripByIDQueryUnit(t *testing.T) {
//arrange
var expected = `SELECT
Id,
Name,
UserId,
RecordedTimeStamp,
EndTimeStamp,
Rating,
IsComplete,
HasSimulatedOBDData,
AverageSpeed,
FuelUsed,
HardStops,
HardAccelerations,
Distance,
CreatedAt,
UpdatedAt
FROM Trips
WHERE Id = 'trip_123'
AND Deleted = 0`
//act
query := SelectTripByIDQuery("trip_123")
//assert
assert.Equal(t, expected, query)
}
func TestSelectTripPointsForTripPointIDQueryUnit(t *testing.T) {
//arrange
var expected = `SELECT
[Id],
[TripId],
[Latitude],
[Longitude],
[Speed],
[RecordedTimeStamp],
[Sequence],
[RPM],
[ShortTermFuelBank],
[LongTermFuelBank],
[ThrottlePosition],
[RelativeThrottlePosition],
[Runtime],
[DistanceWithMalfunctionLight],
[EngineLoad],
[EngineFuelRate],
[VIN]
FROM TripPoints
WHERE Id = 'point_ab'
AND Deleted = 0`
//act
query := selectTripPointsForTripPointIDQuery("point_ab")
//assert
assert.Equal(t, expected, query)
}
func TestUpdateTripQueryUnit(t *testing.T) {
//arrange
trip := Trip{
ID: "abcd",
Name: "fake Trip",
UserID: "fake user",
RecordedTimeStamp: "now",
EndTimeStamp: "then",
Rating: 1,
IsComplete: false,
HasSimulatedOBDData: false,
AverageSpeed: 88,
FuelUsed: 23.2,
HardStops: 8,
HardAccelerations: 12,
Distance: 5,
Created: time.Now(),
UpdatedAt: time.Now(),
Deleted: false,
}
var expected = `UPDATE Trips SET
Name = 'fake Trip',
UserId = 'fake user',
RecordedTimeStamp = 'now',
EndTimeStamp = 'then',
Rating = 1,
IsComplete = 'false',
HasSimulatedOBDData = 'false',
AverageSpeed = 88,
FuelUsed = 23.2,
HardStops = 8,
HardAccelerations = 12,
Distance = 5,
UpdatedAt = GETDATE()
WHERE Id = 'abcd'`
//act
query := UpdateTripQuery(trip)
//assert
assert.Equal(t, expected, query)
}
func TestCreateTripQueryUnit(t *testing.T) {
//arrange
trip := Trip{
ID: "abcd",
Name: "fake Trip",
UserID: "fake user",
RecordedTimeStamp: "now",
EndTimeStamp: "then",
Rating: 1,
IsComplete: false,
HasSimulatedOBDData: false,
AverageSpeed: 88,
FuelUsed: 23.2,
HardStops: 8,
HardAccelerations: 12,
Distance: 5,
Created: time.Now(),
UpdatedAt: time.Now(),
Deleted: false,
}
var expected = `DECLARE @tempReturn
TABLE (TripId NVARCHAR(128));
INSERT INTO Trips (
Name,
UserId,
RecordedTimeStamp,
EndTimeStamp,
Rating,
IsComplete,
HasSimulatedOBDData,
AverageSpeed,
FuelUsed,
HardStops,
HardAccelerations,
Distance,
UpdatedAt,
Deleted)
OUTPUT Inserted.ID
INTO @tempReturn
VALUES (
'fake Trip',
'fake user',
'now',
'then',
1,
'false',
'false',
88,
23.2,
8,
12,
5,
GETDATE(),
'false');
SELECT TripId FROM @tempReturn`
//act
query := createTripQuery(trip)
//assert
assert.Equal(t, expected, query)
}
func TestSelectTripPointsForTripQueryUnit(t *testing.T) {
//arrange
var expected = `SELECT
[Id],
[TripId],
[Latitude],
[Longitude],
[Speed],
[RecordedTimeStamp],
[Sequence],
[RPM],
[ShortTermFuelBank],
[LongTermFuelBank],
[ThrottlePosition],
[RelativeThrottlePosition],
[Runtime],
[DistanceWithMalfunctionLight],
[EngineLoad],
[EngineFuelRate],
[VIN]
FROM [dbo].[TripPoints]
WHERE
TripId = 'trip_zzyzx'
AND Deleted = 0`
//act
query := selectTripPointsForTripQuery("trip_zzyzx")
//assert
assert.Equal(t, expected, query)
}
func TestCreateTripPointQueryUnit(t *testing.T) {
//arrange
tripPoint := TripPoint{
ID: "abcd",
TripID: "a_trip",
Latitude: 51.5244282,
Longitude: -0.0784379,
Speed: 185.2,
RecordedTimeStamp: "a_timestamp",
Sequence: 1,
RPM: 4000,
ShortTermFuelBank: 1,
LongTermFuelBank: 2,
ThrottlePosition: 3,
RelativeThrottlePosition: 4,
Runtime: 5,
DistanceWithMalfunctionLight: 6,
EngineLoad: 7,
MassFlowRate: 8,
EngineFuelRate: 9,
HasOBDData: true,
HasSimulatedOBDData: false,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
Deleted: false,
}
var expected = `DECLARE @tempReturn TABLE (TripPointId NVARCHAR(128));
INSERT INTO TripPoints (
[TripId],
[Latitude],
[Longitude],
[Speed],
[RecordedTimeStamp],
[Sequence],
[RPM],
[ShortTermFuelBank],
[LongTermFuelBank],
[ThrottlePosition],
[RelativeThrottlePosition],
[Runtime],
[DistanceWithMalfunctionLight],
[EngineLoad],
[EngineFuelRate],
[MassFlowRate],
[HasOBDData],
[HasSimulatedOBDData],
[VIN],
[UpdatedAt],
[Deleted])
OUTPUT
Inserted.ID
INTO @tempReturn
VALUES (
'fake_trip_id',
51.52443,
-0.0784379,
185.2,
'a_timestamp',
1,
4000,
1,
2,
3,
4,
5,
6,
7,
8,
9,
'true',
'false',
'{ %!s(bool=false)}',
GETDATE(),
'false');
SELECT TripPointId
FROM @tempReturn`
//act
query := createTripPointQuery(tripPoint, "fake_trip_id")
//assert
assert.Equal(t, expected, query)
}