func testMapperStoreGateway(t *testing.T, s mapper.Store) { // Error callback returns should be propagated as return value of InsertGateway. _, err := s.InsertGateway("testappid", func(appID string) (common.CloudAddress, error) { return common.CloudAddress{}, common.ErrNotFound }) if err != common.ErrNotFound { t.Errorf("unexpected error on InsertGateway failure: %v", err) } expectedCAddr := common.CloudAddress{ AppID: "testApp", ServerLocation: "jp", ThingID: "dummyID", } _, err = s.InsertGateway("testappid", func(appID string) (common.CloudAddress, error) { return expectedCAddr, nil }) if err != nil { t.Errorf("should not fail: %v", err) } gc, err := s.FindGatewayByAppID(expectedCAddr.AppID) if err != nil { t.Errorf("should not fail to find Gateway: %v", err) } if gc.AppID != expectedCAddr.AppID || gc.ServerLocation != expectedCAddr.ServerLocation || gc.ThingID != expectedCAddr.ThingID { t.Error("cloud address of inserted gateway is not equal to expected one: ", gc) } err = s.DeleteGateway(expectedCAddr.AppID) if err != nil { t.Error("should not fail to delete gateway: ", err) } _, err = s.FindGatewayByAppID(expectedCAddr.AppID) if err != common.ErrUnknownGateway { t.Errorf("should fail with ErrUnknownGateway: %v", err) } // delete a not existing gateway should return error err = s.DeleteGateway(expectedCAddr.AppID) if err != common.ErrUnknownGateway { t.Errorf("should fail with ErrUnknownGateway: %v", err) } }