You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FLEcli/fleprocess/adif_write_test.go

107 lines
2.9 KiB

package fleprocess
import (
"reflect"
"testing"
)
func Test_adifElement(t *testing.T) {
type args struct {
elementName string
elementValue string
}
tests := []struct {
name string
args args
wantElement string
}{
{
"case 1",
args{elementName: "station_callsign", elementValue: "ON4KJM/P"},
"<STATION_CALLSIGN:8>ON4KJM/P ",
},
{
"case 2",
args{elementName: "time_ON", elementValue: "1310"},
"<TIME_ON:4>1310 ",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotElement := adifElement(tt.args.elementName, tt.args.elementValue); gotElement != tt.wantElement {
t.Errorf("adifElement() = %v, want %v", gotElement, tt.wantElement)
}
})
}
}
func Test_buildAdif(t *testing.T) {
sampleFilledLog1 := []LogLine{
{MyCall: "ON4KJM/P", Call: "S57LC", Date: "2020-05-24", Time: "1310", Band: "20m", Frequency: "14.045", Mode: "CW", RSTsent: "599", RSTrcvd: "599", MyWWFF: "ONFF-0259", Operator: "ON4KJM", Nickname: "ONFF-0259-1"},
{MyCall: "ON4KJM/P", Call: "ON4LY", Date: "2020-05-24", Time: "1312", Band: "20m", Mode: "CW", RSTsent: "559", RSTrcvd: "599", MyWWFF: "ONFF-0259", Operator: "ON4KJM"},
}
expectedOutput1 := []string{
"ADIF Export for Fast Log Entry by DF3CB",
"<PROGRAMID:3>FLE",
"<ADIF_VER:5>3.1.0",
"<EOH>",
"<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>S57LC <QSO_DATE:8>20200524 <TIME_ON:4>1310 <BAND:3>20m <MODE:2>CW <FREQ:6>14.045 <RST_SENT:3>599 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <OPERATOR:6>ON4KJM <APP_EQSL_QTH_NICKNAME:11>ONFF-0259-1 <EOR>",
"<STATION_CALLSIGN:8>ON4KJM/P <CALL:5>ON4LY <QSO_DATE:8>20200524 <TIME_ON:4>1312 <BAND:3>20m <MODE:2>CW <RST_SENT:3>559 <RST_RCVD:3>599 <MY_SIG:4>WWFF <MY_SIG_INFO:9>ONFF-0259 <OPERATOR:6>ON4KJM <EOR>",
}
type args struct {
fullLog []LogLine
isWWFF bool
isSOTA bool
}
tests := []struct {
name string
args args
wantAdifList []string
}{
{
"Happy case-WWFF",
args{fullLog: sampleFilledLog1, isWWFF: true, isSOTA: false},
expectedOutput1,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotAdifList := buildAdif(tt.args.fullLog, tt.args.isWWFF, tt.args.isSOTA); !reflect.DeepEqual(gotAdifList, tt.wantAdifList) {
t.Errorf("buildAdif() = %v, want %v", gotAdifList, tt.wantAdifList)
}
})
}
}
func Test_adifDate(t *testing.T) {
type args struct {
inputDate string
}
tests := []struct {
name string
args args
wantOutputDate string
}{
{
"Happy case",
args{inputDate: "2020-06-13"},
"20200613",
},
//Panics as expected but I don't know how to test this.
// {
// "Bad format",
// args{inputDate: "2020-13-06"},
// "20200613",
// },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotOutputDate := adifDate(tt.args.inputDate); gotOutputDate != tt.wantOutputDate {
t.Errorf("adifDate() = %v, want %v", gotOutputDate, tt.wantOutputDate)
}
})
}
}