25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

46 lines
1.4 KiB

  1. package service
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "github.com/stretchr/testify/require"
  6. )
  7. func TestParseAssetActionRecognizesOfficialActions(t *testing.T) {
  8. cases := map[string]AssetOperation{
  9. "CreateAssetGroup": AssetOperationAssetGroupCreate,
  10. "CreateAsset": AssetOperationAssetCreate,
  11. "ListAssetGroups": AssetOperationAssetGroupList,
  12. "ListAssets": AssetOperationAssetList,
  13. "GetAsset": AssetOperationAssetGet,
  14. "GetAssetGroup": AssetOperationAssetGroupGet,
  15. "UpdateAsset": AssetOperationAssetUpdate,
  16. "UpdateAssetGroup": AssetOperationAssetGroupUpdate,
  17. "DeleteAsset": AssetOperationAssetDelete,
  18. "DeleteAssetGroup": AssetOperationAssetGroupDelete,
  19. }
  20. for action, operation := range cases {
  21. t.Run(action, func(t *testing.T) {
  22. spec, ok := ParseAssetAction(action)
  23. require.True(t, ok)
  24. assert.Equal(t, action, spec.Action)
  25. assert.Equal(t, operation, spec.Operation)
  26. })
  27. }
  28. }
  29. func TestParseAssetActionRejectsUnknownAction(t *testing.T) {
  30. _, ok := ParseAssetAction("CreateRealPersonAuthSession")
  31. assert.False(t, ok)
  32. }
  33. func TestBuildAssetSuccessResponseAllowsDeleteWithoutResult(t *testing.T) {
  34. body, err := BuildAssetSuccessResponse("DeleteAsset", "2024-01-01", nil)
  35. require.NoError(t, err)
  36. assert.Contains(t, string(body), `"Action":"DeleteAsset"`)
  37. assert.Contains(t, string(body), `"ResponseMetadata"`)
  38. assert.NotContains(t, string(body), `"Result"`)
  39. }