162 lines
4.4 KiB
Go
162 lines
4.4 KiB
Go
package test
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
//"encoding/base64"
|
|
"strings"
|
|
|
|
cmapi "certmanager/api/certmanagercontrol"
|
|
"certmanager/internal/config"
|
|
"certmanager/internal/database"
|
|
"certmanager/internal/logic"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestLogicIssuer(t *testing.T) {
|
|
var err error
|
|
var lg *logic.Logic
|
|
{
|
|
conf := config.NewConfig()
|
|
err = conf.ReadFile()
|
|
require.NoError(t, err)
|
|
|
|
db, err := database.NewDatabase(conf.DataDir)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, db)
|
|
|
|
err = db.InitDatabase()
|
|
require.NoError(t, err)
|
|
|
|
logicConfig := &logic.LogicConfig{
|
|
Auths: conf.Auths,
|
|
Database: db,
|
|
}
|
|
lg, err = logic.NewLogic(logicConfig)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, lg)
|
|
}
|
|
|
|
ctx, _ := context.WithTimeout(context.Background(), 1*time.Second)
|
|
|
|
issuerCommonName := "foo.bar"
|
|
var issuerID int64
|
|
|
|
{
|
|
createIssuerPairParams := &cmapi.CreateIssuerPairParams{
|
|
IssuerCommonName: issuerCommonName,
|
|
}
|
|
createIssuerPairRes, err := lg.CreateIssuerPair(ctx, createIssuerPairParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, createIssuerPairRes)
|
|
issuerID = createIssuerPairRes.IssuerID
|
|
printObj("issuerID", issuerID)
|
|
|
|
}
|
|
var issuerCert string
|
|
{
|
|
getIssuerCertificateParams := &cmapi.GetIssuerCertificateParams{
|
|
IssuerID: issuerID,
|
|
}
|
|
getIssuerCertificateRes, err := lg.GetIssuerCertificate(ctx, getIssuerCertificateParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, getIssuerCertificateRes)
|
|
require.NotZero(t, len(getIssuerCertificateRes.Certificate))
|
|
|
|
printObj("getIssuerCertificateRes", getIssuerCertificateRes)
|
|
require.NoError(t, err)
|
|
|
|
issuerCert = getIssuerCertificateRes.Certificate
|
|
require.NotZero(t, len(issuerCert))
|
|
printObj("issuerCert", string(issuerCert))
|
|
}
|
|
{
|
|
revokeIssuerPairParams := &cmapi.RevokeIssuerPairParams{
|
|
IssuerID: issuerID,
|
|
}
|
|
revokeIssuerPairRes, err := lg.RevokeIssuerPair(ctx, revokeIssuerPairParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, revokeIssuerPairRes)
|
|
|
|
printObj("revokeIssuerPairRes", revokeIssuerPairRes)
|
|
require.NoError(t, err)
|
|
}
|
|
{
|
|
getIssuerCertificateParams := &cmapi.GetIssuerCertificateParams{
|
|
IssuerID: issuerID,
|
|
}
|
|
getIssuerCertificateRes, err := lg.GetIssuerCertificate(ctx, getIssuerCertificateParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, getIssuerCertificateRes)
|
|
require.NotZero(t, len(getIssuerCertificateRes.Certificate))
|
|
require.True(t, getIssuerCertificateRes.Revoked)
|
|
|
|
printObj("getIssuerCertificateRes", getIssuerCertificateRes)
|
|
}
|
|
{
|
|
unrevokeIssuerPairParams := &cmapi.UnrevokeIssuerPairParams{
|
|
IssuerID: issuerID,
|
|
}
|
|
unrevokeIssuerPairRes, err := lg.UnrevokeIssuerPair(ctx, unrevokeIssuerPairParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, unrevokeIssuerPairRes)
|
|
|
|
printObj("unrevokeIssuerPairRes", unrevokeIssuerPairRes)
|
|
require.NoError(t, err)
|
|
}
|
|
{
|
|
getIssuerCertificateParams := &cmapi.GetIssuerCertificateParams{
|
|
IssuerID: issuerID,
|
|
}
|
|
getIssuerCertificateRes, err := lg.GetIssuerCertificate(ctx, getIssuerCertificateParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, getIssuerCertificateRes)
|
|
require.NotZero(t, len(getIssuerCertificateRes.Certificate))
|
|
require.False(t, getIssuerCertificateRes.Revoked)
|
|
|
|
printObj("getIssuerCertificateRes", getIssuerCertificateRes)
|
|
}
|
|
{
|
|
listIssuerPairsParams := &cmapi.ListIssuerPairsParams{}
|
|
listIssuerPairsRes, err := lg.ListIssuerPairs(ctx, listIssuerPairsParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, listIssuerPairsRes)
|
|
require.NotZero(t, len(listIssuerPairsRes.Issuers))
|
|
|
|
printObj("listIssuerPairRes", listIssuerPairsRes)
|
|
}
|
|
{
|
|
importIssuerPairParams := &cmapi.ImportIssuerPairParams{
|
|
Certificate: issuerCert,
|
|
}
|
|
importIssuerPairRes, err := lg.ImportIssuerPair(ctx, importIssuerPairParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, importIssuerPairRes)
|
|
|
|
printObj("importIssuerPairRes", importIssuerPairRes)
|
|
}
|
|
{
|
|
listIssuerPairsParams := &cmapi.ListIssuerPairsParams{}
|
|
listIssuerPairsRes, err := lg.ListIssuerPairs(ctx, listIssuerPairsParams)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, listIssuerPairsRes)
|
|
require.NotZero(t, len(listIssuerPairsRes.Issuers))
|
|
|
|
printObj("listIssuerPairRes", listIssuerPairsRes)
|
|
}
|
|
}
|
|
|
|
func printObj(label string, obj any) {
|
|
objBytes, _ := json.MarshalIndent(obj, " ", " ")
|
|
objString := string(objBytes)
|
|
if strings.Count(objString, "\n") < 2 {
|
|
fmt.Printf("==== %s: %s\n", label, objString)
|
|
} else {
|
|
fmt.Printf("==== %s ::\n %s\n", label, objString)
|
|
}
|
|
}
|