grim/convey
Clone
Summary
Browse
Changes
Graph
Move stages.Stage to the runtime package
2021-12-23, Gary Kramlich
3351eae5b1d5
Move stages.Stage to the runtime package
// Convey
// Copyright 2016-2018 Gary Kramlich <grim@reaperworld.com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
package
exec
import
(
"testing"
"github.com/stretchr/testify/assert"
)
func
TestWithoutArgs
(
t
*
testing
.
T
)
{
assert
.
NotNil
(
t
,
NewGenerator
())
}
func
TestWithArgs
(
t
*
testing
.
T
)
{
assert
.
Equal
(
t
,
NewGenerator
(
"a"
).
Command
(),
[]
string
{
"a"
},
)
assert
.
Equal
(
t
,
NewGenerator
(
"a"
,
"b"
,
"c"
).
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
},
)
}
func
TestAppend
(
t
*
testing
.
T
)
{
cmd
:=
NewGenerator
(
"a"
)
cmd
.
Append
(
"b"
,
"c"
)
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
})
cmd
=
NewGenerator
(
"a"
,
"b"
)
cmd
.
Append
(
"c"
)
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
})
cmd
=
NewGenerator
(
"a"
)
cmd
.
Append
(
"b"
,
"c"
,
"d"
,
"e"
,
"f"
,
"g"
,
"h"
,
"i"
,
"j"
,
"k"
)
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
,
"g"
,
"h"
,
"i"
,
"j"
,
"k"
},
)
}
func
TestPrepend
(
t
*
testing
.
T
)
{
cmd
:=
NewGenerator
(
"b"
,
"c"
)
cmd
.
Prepend
(
"a"
)
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
})
cmd
=
NewGenerator
(
"k"
)
cmd
.
Prepend
(
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
,
"g"
,
"h"
,
"i"
,
"j"
)
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
,
"g"
,
"h"
,
"i"
,
"j"
,
"k"
},
)
}
func
TestMultiplePrepends
(
t
*
testing
.
T
)
{
cmd
:=
NewGenerator
(
"u"
,
"v"
,
"w"
,
"x"
,
"y"
,
"z"
)
cmd
.
Prepend
(
"k"
,
"l"
,
"m"
,
"n"
,
"o"
,
"p"
,
"q"
,
"r"
,
"s"
,
"t"
)
cmd
.
Prepend
(
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
,
"g"
,
"h"
,
"i"
,
"j"
)
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
,
"g"
,
"h"
,
"i"
,
"j"
,
"k"
,
"l"
,
"m"
,
"n"
,
"o"
,
"p"
,
"q"
,
"r"
,
"s"
,
"t"
,
"u"
,
"v"
,
"w"
,
"x"
,
"y"
,
"z"
,
},
)
}
func
TestAppendv
(
t
*
testing
.
T
)
{
assert
.
Equal
(
t
,
NewGenerator
().
Command
(),
[]
string
{})
cmd
:=
NewGenerator
(
"a"
,
"b"
,
"c"
)
cmd
.
Appendv
([]
string
{
"d"
,
"e"
,
"f"
})
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
})
}
func
TestMixedAppend
(
t
*
testing
.
T
)
{
cmd
:=
NewGenerator
(
"a"
)
cmd
.
Appendv
([]
string
{
"b"
,
"c"
})
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
})
}
func
TestPrependv
(
t
*
testing
.
T
)
{
cmd
:=
NewGenerator
(
"c"
)
cmd
.
Prependv
([]
string
{
"a"
,
"b"
})
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
,
"b"
,
"c"
})
cmd
=
NewGenerator
(
"a"
)
cmd
.
Prependv
([]
string
{})
assert
.
Equal
(
t
,
cmd
.
Command
(),
[]
string
{
"a"
})
}