Skip to content

Commit

Permalink
unit_test_tag
Browse files Browse the repository at this point in the history
  • Loading branch information
vshanthe committed Dec 30, 2024
1 parent 85c7bc3 commit cda5f7a
Show file tree
Hide file tree
Showing 4 changed files with 132 additions and 0 deletions.
3 changes: 3 additions & 0 deletions test/unit/fixtures/tag_create.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"label": "new-tag"
}
15 changes: 15 additions & 0 deletions test/unit/fixtures/tagged_objects_list.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"data": [
{
"type": "linode",
"data": {
"id": 12345,
"label": "example-instance",
"region": "us-east"
}
}
],
"page": 1,
"pages": 1,
"results": 1
}
10 changes: 10 additions & 0 deletions test/unit/fixtures/tags_list.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"data": [
{
"label": "example-tag"
}
],
"page": 1,
"pages": 1,
"results": 1
}
104 changes: 104 additions & 0 deletions test/unit/tag_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
package unit

import (
"context"
"fmt"
"testing"

"github.com/linode/linodego"
"github.com/stretchr/testify/assert"
)

func TestListTags(t *testing.T) {
// Load the fixture data for tags
fixtureData, err := fixtures.GetFixture("tags_list")
assert.NoError(t, err)

var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)

base.MockGet("tags", fixtureData)

tags, err := base.Client.ListTags(context.Background(), &linodego.ListOptions{})
assert.NoError(t, err)

assert.NotEmpty(t, tags, "Expected non-empty tag list")
assert.Equal(t, "example-tag", tags[0].Label, "Expected tag label to be 'example-tag'")
}

func TestCreateTag(t *testing.T) {
// Load the fixture data for tag creation
fixtureData, err := fixtures.GetFixture("tag_create")
assert.NoError(t, err)

var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)

base.MockPost("tags", fixtureData)

opts := linodego.TagCreateOptions{
Label: "new-tag",
}

tag, err := base.Client.CreateTag(context.Background(), opts)
assert.NoError(t, err, "Expected no error when creating tag")

// Verify the created tag's label
assert.Equal(t, "new-tag", tag.Label, "Expected created tag label to match input")
}


func TestDeleteTag(t *testing.T) {
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)

tagLabel := "delete-tag"
base.MockDelete(fmt.Sprintf("tags/%s", tagLabel), nil)

err := base.Client.DeleteTag(context.Background(), tagLabel)
assert.NoError(t, err, "Expected no error when deleting tag")
}

func TestListTaggedObjects(t *testing.T) {
// Load the fixture data for tagged objects
fixtureData, err := fixtures.GetFixture("tagged_objects_list")
assert.NoError(t, err)

var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)

tagLabel := "example-tag"
base.MockGet(fmt.Sprintf("tags/%s", tagLabel), fixtureData)

taggedObjects, err := base.Client.ListTaggedObjects(context.Background(), tagLabel, &linodego.ListOptions{})
assert.NoError(t, err)

assert.NotEmpty(t, taggedObjects, "Expected non-empty tagged objects list")
assert.Equal(t, "linode", taggedObjects[0].Type, "Expected tagged object type to be 'linode'")
}

func TestSortedObjects(t *testing.T) {
// Load the fixture data for tagged objects
fixtureData, err := fixtures.GetFixture("tagged_objects_list")
assert.NoError(t, err)

var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)

tagLabel := "example-tag"
base.MockGet(fmt.Sprintf("tags/%s", tagLabel), fixtureData)

taggedObjects, err := base.Client.ListTaggedObjects(context.Background(), tagLabel, &linodego.ListOptions{})
assert.NoError(t, err)

sortedObjects, err := taggedObjects.SortedObjects()
assert.NoError(t, err)

assert.NotEmpty(t, sortedObjects.Instances, "Expected non-empty instances list in sorted objects")
assert.Equal(t, "example-instance", sortedObjects.Instances[0].Label, "Expected instance label to be 'example-instance'")
}

0 comments on commit cda5f7a

Please sign in to comment.