github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/java/keytool_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package java
     5  
     6  import (
     7  	"os"
     8  	"path/filepath"
     9  	"strings"
    10  	"testing"
    11  
    12  	piperMock "github.com/SAP/jenkins-library/pkg/mock"
    13  	"github.com/stretchr/testify/assert"
    14  	"github.com/stretchr/testify/mock"
    15  	"github.com/stretchr/testify/require"
    16  )
    17  
    18  func TestGetDefaultTruststorePath(t *testing.T) {
    19  	// prepare
    20  	os.Setenv("JAVA_HOME", mock.Anything)
    21  	require.Equal(t, mock.Anything, os.Getenv("JAVA_HOME"))
    22  	// test
    23  	result := GetDefaultTruststorePath()
    24  	// assert
    25  	assert.Equal(t, "lib/security/cacerts", defaultTruststorePath)
    26  	assert.Equal(t, filepath.Join(mock.Anything, defaultTruststorePath), result)
    27  	// restore
    28  	os.Unsetenv("JAVA_HOME")
    29  }
    30  
    31  func TestGetMavenOpts(t *testing.T) {
    32  	// test
    33  	result := GetMavenOpts(mock.Anything)
    34  	// assert
    35  	assert.Equal(t, "changeit", DefaultTruststorePassword)
    36  	assert.Equal(t, "-Djavax.net.ssl.trustStore="+mock.Anything+" -Djavax.net.ssl.trustStorePassword="+DefaultTruststorePassword, result)
    37  }
    38  
    39  func TestImportCert(t *testing.T) {
    40  	// prepare
    41  	secretstorePath := filepath.Join(mock.Anything, mock.Anything)
    42  	mockRunner := &piperMock.ExecMockRunner{}
    43  	// test
    44  	err := ImportCert(mockRunner, mock.Anything, secretstorePath)
    45  	// assert
    46  	assert.NoError(t, err)
    47  	assert.Len(t, mockRunner.Calls, 1)
    48  	for _, call := range mockRunner.Calls {
    49  		assert.Equal(t, "keytool", call.Exec)
    50  		assert.Equal(t, strings.Join(call.Params, " "), "-import -noprompt -storepass changeit -keystore mock.Anything -file "+secretstorePath+" -alias mock.Anything")
    51  	}
    52  }
    53  
    54  func TestImportTruststore(t *testing.T) {
    55  	// prepare
    56  	srcSecretstorePath := filepath.Join(mock.Anything, mock.Anything)
    57  	destSecretstorePath := filepath.Join(mock.Anything, mock.Anything)
    58  	mockRunner := &piperMock.ExecMockRunner{}
    59  	// test
    60  	err := ImportTruststore(mockRunner, destSecretstorePath, srcSecretstorePath)
    61  	// assert
    62  	assert.NoError(t, err)
    63  	assert.Len(t, mockRunner.Calls, 1)
    64  	for _, call := range mockRunner.Calls {
    65  		assert.Equal(t, "keytool", call.Exec)
    66  		assert.Equal(t, strings.Join(call.Params, " "), "-importkeystore -noprompt -srckeystore "+srcSecretstorePath+" -srcstorepass changeit -destkeystore "+destSecretstorePath+" -deststorepass changeit")
    67  	}
    68  }