Пример #1
0
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)
	}

}