![Kostiantyn Kalynovskyi](/assets/img/avatar_default.png)
Also this commit, adds condition to setup testbundle, that ignores directories Commit adds new set of functions that allow easy selection of documents from bundle for different modules. Relates-To: #61 Closes: #61 Change-Id: I6011203a1f573cbb847e9f57c04aa60bf8278ef1
63 lines
1.9 KiB
Go
63 lines
1.9 KiB
Go
package document_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"opendev.org/airship/airshipctl/pkg/document"
|
|
"opendev.org/airship/airshipctl/testutil"
|
|
)
|
|
|
|
func TestSelectorsPositive(t *testing.T) {
|
|
bundle := testutil.NewTestBundle(t, "testdata/selectors/valid")
|
|
|
|
t.Run("TestEphemeralCloudDataSelector", func(t *testing.T) {
|
|
doc, err := bundle.Select(document.NewEphemeralCloudDataSelector())
|
|
require.NoError(t, err)
|
|
assert.Len(t, doc, 1)
|
|
})
|
|
|
|
t.Run("TestEphemeralNetworkDataSelector", func(t *testing.T) {
|
|
docs, err := bundle.Select(document.NewEphemeralBMHSelector())
|
|
require.NoError(t, err)
|
|
assert.Len(t, docs, 1)
|
|
bmhDoc := docs[0]
|
|
selector, err := document.NewEphemeralNetworkDataSelector(bmhDoc)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "validName", selector.Name)
|
|
})
|
|
|
|
t.Run("TestEphemeralCloudDataSelector", func(t *testing.T) {
|
|
doc, err := bundle.Select(document.NewEphemeralCloudDataSelector())
|
|
require.NoError(t, err)
|
|
assert.Len(t, doc, 1)
|
|
})
|
|
}
|
|
|
|
func TestSelectorsNegative(t *testing.T) {
|
|
// These two tests take bundle with two malformed documents
|
|
// each of the documents will fail at different locations providing higher
|
|
// test coverage
|
|
bundle := testutil.NewTestBundle(t, "testdata/selectors/invalid")
|
|
|
|
t.Run("TestNewEphemeralNetworkDataSelectorErr", func(t *testing.T) {
|
|
docs, err := bundle.Select(document.NewEphemeralBMHSelector())
|
|
require.NoError(t, err)
|
|
assert.Len(t, docs, 2)
|
|
bmhDoc := docs[0]
|
|
_, err = document.NewEphemeralNetworkDataSelector(bmhDoc)
|
|
assert.Error(t, err)
|
|
})
|
|
|
|
t.Run("TestEphemeralNetworkDataSelectorErr", func(t *testing.T) {
|
|
docs, err := bundle.Select(document.NewEphemeralBMHSelector())
|
|
require.NoError(t, err)
|
|
assert.Len(t, docs, 2)
|
|
bmhDoc := docs[1]
|
|
_, err = document.NewEphemeralNetworkDataSelector(bmhDoc)
|
|
assert.Error(t, err)
|
|
})
|
|
}
|