From cb58720ecbfba9bed57d20df8e5eee8b1a7f0d46 Mon Sep 17 00:00:00 2001 From: Maarten de Kruijf Date: Wed, 24 Jul 2024 18:37:13 +0200 Subject: [PATCH] Fixed action executor test --- .../executor/action/action_executor_test.go | 55 +++++++++++++++++-- .../mocks/mock_capability/mock_capability.go | 6 +- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/test/unittest/executor/action/action_executor_test.go b/test/unittest/executor/action/action_executor_test.go index a4285597..5fd031a4 100644 --- a/test/unittest/executor/action/action_executor_test.go +++ b/test/unittest/executor/action/action_executor_test.go @@ -82,7 +82,9 @@ func TestExecuteStep(t *testing.T) { expectedCommand, expectedAuth, expectedTarget, - cacao.NewVariables(expectedVariables)). + cacao.NewVariables(expectedVariables), + step.InArgs, + step.OutArgs). Return(cacao.NewVariables(expectedVariables), nil) @@ -132,12 +134,25 @@ func TestExecuteActionStep(t *testing.T) { Name: "ssh", } + step := cacao.Step{ + Type: cacao.StepTypeAction, + Name: "action test", + ID: stepId, + Description: "", + StepVariables: cacao.NewVariables(expectedVariables), + Commands: []cacao.Command{expectedCommand}, + Agent: "mock-ssh", + Targets: []string{"target1"}, + } + mock_ssh.On("Execute", metadata, expectedCommand, expectedAuth, expectedTarget, - cacao.NewVariables(expectedVariables)). + cacao.NewVariables(expectedVariables), + step.InArgs, + step.OutArgs). Return(cacao.NewVariables(expectedVariables), nil) @@ -146,6 +161,7 @@ func TestExecuteActionStep(t *testing.T) { expectedAuth, expectedTarget, cacao.NewVariables(expectedVariables), + step, agent) assert.Equal(t, err, nil) @@ -189,12 +205,22 @@ func TestNonExistingCapabilityStep(t *testing.T) { Type: "ssh", Name: "non-existing", } - + step := cacao.Step{ + Type: cacao.StepTypeAction, + Name: "action test", + ID: stepId, + Description: "", + StepVariables: cacao.NewVariables(expectedVariables), + Commands: []cacao.Command{expectedCommand}, + Agent: "mock-ssh", + Targets: []string{"target1"}, + } _, err := executerObject.ExecuteActionStep(metadata, expectedCommand, expectedAuth, expectedTarget, cacao.NewVariables(expectedVariables), + step, agent) assert.Equal(t, err, errors.New("capability: non-existing is not available in soarca")) @@ -325,15 +351,31 @@ func TestVariableInterpolation(t *testing.T) { expectedCommand, expectedAuth, expectedTarget, - cacao.NewVariables(var1, var2, var3, varUser, varPassword, varOauth, varPrivateKey, varToken, varUserId)). + cacao.NewVariables(var1, var2, var3, varUser, varPassword, varOauth, varPrivateKey, varToken, varUserId), + []string{"__in_one__", "__in_two__"}, + []string{"__out_one__", "__out_two__"}). Return(cacao.NewVariables(var1), nil) + step := cacao.Step{ + Type: cacao.StepTypeAction, + Name: "action test", + ID: stepId, + Description: "", + StepVariables: cacao.NewVariables(var1, var2, var3, varUser, varPassword, varOauth, varPrivateKey, varToken, varUserId), + Commands: []cacao.Command{expectedCommand}, + Agent: "mock-ssh", + Targets: []string{"target1"}, + InArgs: []string{"__in_one__", "__in_two__"}, + OutArgs: []string{"__out_one__", "__out_two__"}, + } + _, err := executerObject.ExecuteActionStep(metadata, inputCommand, inputAuth, inputTarget, cacao.NewVariables(var1, var2, var3, varUser, varPassword, varOauth, varPrivateKey, varToken, varUserId), + step, agent) assert.Equal(t, err, nil) @@ -361,7 +403,9 @@ func TestVariableInterpolation(t *testing.T) { expectedHttpCommand, expectedAuth, expectedTarget, - cacao.NewVariables(varHttpContent)). + cacao.NewVariables(varHttpContent), + []string{"__in_one__", "__in_two__"}, + []string{"__out_one__", "__out_two__"}). Return(cacao.NewVariables(var1), nil) @@ -370,6 +414,7 @@ func TestVariableInterpolation(t *testing.T) { expectedAuth, expectedTarget, cacao.NewVariables(varHttpContent), + step, agent) assert.Equal(t, err, nil) diff --git a/test/unittest/mocks/mock_capability/mock_capability.go b/test/unittest/mocks/mock_capability/mock_capability.go index 36ecfb29..f2d0f6b5 100644 --- a/test/unittest/mocks/mock_capability/mock_capability.go +++ b/test/unittest/mocks/mock_capability/mock_capability.go @@ -15,12 +15,14 @@ func (capability *Mock_Capability) Execute(metadata execution.Metadata, command cacao.Command, authentication cacao.AuthenticationInformation, target cacao.AgentTarget, - inputVariables cacao.Variables, - outputVariables cacao.Variables) (cacao.Variables, error) { + variables cacao.Variables, + inputVariables []string, + outputVariables []string) (cacao.Variables, error) { args := capability.Called(metadata, command, authentication, target, + variables, inputVariables, outputVariables) return args.Get(0).(cacao.Variables), args.Error(1)