feat: basic tests

master
Stas Dm 7 years ago
parent 11ce51ffb1
commit 351dea79a1
  1. 19
      sl500.go
  2. 51
      sl500_test.go

@ -80,21 +80,6 @@ func NewConnection(path string, baud baud) (Sl500, error) {
return res, err return res, err
} }
_, err = res.RfInitType(Type_ISO)
if err != nil {
return res, err
}
_, err = res.RfAntennaSta(AntennaOff)
if err != nil {
return res, err
}
_, err = res.RfGetDeviceNumber()
if err != nil {
return res, err
}
return res, nil return res, nil
} }
@ -245,7 +230,7 @@ func readResponse(port *serial.Port) ([]byte, error) {
return nil, fmt.Errorf("Response status is fail") return nil, fmt.Errorf("Response status is fail")
} }
buf = buf[3:] buf = buf[4:]
ver := byte(0x00) ver := byte(0x00)
for _, k := range buf[:len(buf)-1] { for _, k := range buf[:len(buf)-1] {
@ -256,7 +241,7 @@ func readResponse(port *serial.Port) ([]byte, error) {
return nil, fmt.Errorf("Response verification failed") return nil, fmt.Errorf("Response verification failed")
} }
buf = buf[4 : len(buf)-1] buf = buf[5 : len(buf)-1]
return buf, nil return buf, nil
} }

@ -0,0 +1,51 @@
package sl500_api_test
import (
"testing"
"sl500-api"
"fmt"
"reflect"
)
func TestCanReadCard(t *testing.T) {
reader, err := sl500_api.NewConnection("COM3", sl500_api.Baud.Baud19200)
reader.RfAntennaSta(sl500_api.AntennaOn)
if err != nil {
t.Fatal(err)
}
reader.RfLight(sl500_api.ColorYellow)
resp, _ := reader.RfRequest(sl500_api.RequestAll)
if len(resp) != 2 {
t.Fatalf("Wrong length for rf request %v", resp)
}
cardId, _ := reader.RfAnticoll()
fmt.Println(cardId)
cardCapacity, _ := reader.RfSelect(cardId)
if len(cardCapacity) == 0 {
t.Errorf("Capacity length is wrong %v", cardCapacity)
}
reader.RfM1Authentication2(sl500_api.AuthModeKeyA, 0, []byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff})
blockData, err := reader.RfM1Read(0)
if err != nil {
t.Fatal(err)
}
if len(blockData) != 16 {
t.Fatalf("Wrong block data length %v", blockData)
}
if !reflect.DeepEqual(blockData[:4], cardId) {
t.Fatalf("CardId missmatch")
}
reader.RfLight(sl500_api.ColorGreen)
if err != nil {
t.Error(err)
}
}
Loading…
Cancel
Save