Blame internal/client/projects_test.go

Packit Service 4d2de5
// Package client - projects_test contains functions to check the projects API
Packit Service 4d2de5
// Copyright (C) 2020 by Red Hat, Inc.
Packit Service 4d2de5
Packit Service 4d2de5
// Tests should be self-contained and not depend on the state of the server
Packit Service 4d2de5
// They should use their own blueprints, not the default blueprints
Packit Service 4d2de5
// They should not assume version numbers for packages will match
Packit Service 4d2de5
// They should run tests that depend on previous results from the same function
Packit Service 4d2de5
// not from other functions.
Packit Service 4d2de5
package client
Packit Service 4d2de5
Packit Service 4d2de5
import (
Packit Service 4d2de5
	//	"strings"
Packit Service 4d2de5
	"testing"
Packit Service 4d2de5
Packit Service 4d2de5
	"github.com/stretchr/testify/require"
Packit Service 4d2de5
)
Packit Service 4d2de5
Packit Service 4d2de5
// List all the projects
Packit Service 4d2de5
func TestListAllProjectsV0(t *testing.T) {
Packit Service 4d2de5
	projs, api, err := ListAllProjectsV0(testState.socket)
Packit Service 4d2de5
	require.NoError(t, err)
Packit Service 4d2de5
	require.Nil(t, api, "ListAllProjects failed: %#v", api)
Packit Service 4d2de5
	require.True(t, len(projs) > 1, "Not enough projects returned")
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// List some of the projects
Packit Service 4d2de5
func TestListSomeProjectsV0(t *testing.T) {
Packit Service 4d2de5
	projs, api, err := ListSomeProjectsV0(testState.socket, 0, 5)
Packit Service 4d2de5
	require.NoError(t, err)
Packit Service 4d2de5
	require.Nil(t, api, "ListSomeProjects failed: %#v", api)
Packit Service 4d2de5
	require.True(t, len(projs) == 5, "Not enough projects returned")
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// Get info on a specific project
Packit Service 4d2de5
func TestOneProjectsInfoV0(t *testing.T) {
Packit Service 4d2de5
	var moduleNames string
Packit Service 4d2de5
Packit Service 4d2de5
	// Unit test uses modules/packages named packageN
Packit Service 4d2de5
	if testState.unitTest {
Packit Service 4d2de5
		moduleNames = "package1"
Packit Service 4d2de5
	} else {
Packit Service 4d2de5
		moduleNames = "bash"
Packit Service 4d2de5
	}
Packit Service 4d2de5
	projs, api, err := GetProjectsInfoV0(testState.socket, moduleNames)
Packit Service 4d2de5
	require.NoError(t, err)
Packit Service 4d2de5
	require.Nil(t, api, "GetProjectsInfo failed: %#v", api)
Packit Service 4d2de5
	require.True(t, len(projs) == 1, "Not enough projects returned")
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// Get info on a two specific projects
Packit Service 4d2de5
func TestTwoProjectsInfoV0(t *testing.T) {
Packit Service 4d2de5
	var moduleNames string
Packit Service 4d2de5
Packit Service 4d2de5
	// Unit test uses modules/packages named packageN
Packit Service 4d2de5
	if testState.unitTest {
Packit Service 4d2de5
		moduleNames = "package1,package2"
Packit Service 4d2de5
	} else {
Packit Service 4d2de5
		moduleNames = "bash,tmux"
Packit Service 4d2de5
	}
Packit Service 4d2de5
	projs, api, err := GetProjectsInfoV0(testState.socket, moduleNames)
Packit Service 4d2de5
	require.NoError(t, err)
Packit Service 4d2de5
	require.Nil(t, api, "GetProjectsInfo failed: %#v", api)
Packit Service 4d2de5
	require.True(t, len(projs) == 2, "Not enough projects returned")
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// Test an invalid info request
Packit Service 4d2de5
func TestEmptyProjectsInfoV0(t *testing.T) {
Packit Service 4d2de5
	projs, api, err := GetProjectsInfoV0(testState.socket, "")
Packit Service 4d2de5
	require.NoError(t, err)
Packit Service 4d2de5
	require.NotNil(t, api, "did not return an error")
Packit Service 4d2de5
	require.False(t, api.Status, "wrong Status (true)")
Packit Service 4d2de5
	require.True(t, len(projs) == 0)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// Depsolve projects
Packit Service 4d2de5
func TestDepsolveOneProjectV0(t *testing.T) {
Packit Service 4d2de5
	deps, api, err := DepsolveProjectsV0(testState.socket, "bash")
Packit Service 4d2de5
	require.NoError(t, err)
Packit Service 4d2de5
	require.Nil(t, api, "DepsolveProjects failed: %#v", api)
Packit Service 4d2de5
	require.True(t, len(deps) > 2, "Not enough dependencies returned")
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// Depsolve several projects
Packit Service 4d2de5
func TestDepsolveTwoProjectV0(t *testing.T) {
Packit Service 4d2de5
	deps, api, err := DepsolveProjectsV0(testState.socket, "bash,tmux")
Packit Service 4d2de5
	require.NoError(t, err)
Packit Service 4d2de5
	require.Nil(t, api, "DepsolveProjects failed: %#v", api)
Packit Service 4d2de5
	require.True(t, len(deps) > 2, "Not enough dependencies returned")
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// Depsolve empty projects list
Packit Service 4d2de5
func TestEmptyDepsolveProjectV0(t *testing.T) {
Packit Service 4d2de5
	deps, api, err := DepsolveProjectsV0(testState.socket, "")
Packit Service 4d2de5
	require.NoError(t, err)
Packit Service 4d2de5
	require.NotNil(t, api, "did not return an error")
Packit Service 4d2de5
	require.False(t, api.Status, "wrong Status (true)")
Packit Service 4d2de5
	require.True(t, len(deps) == 0)
Packit Service 4d2de5
}