blob: a70dd371f79f8c951562abb25e32d2b0dfe76139 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package resource
import (
"testing"
. "github.com/onsi/gomega"
)
func TestCommentBlock(t *testing.T) {
cases := []struct {
name string
input []string
indentTabs int
expected string
}{
{
name: "single line",
input: []string{
"single line comment",
},
indentTabs: 1,
expected: "// single line comment",
},
{
name: "single line",
input: []string{
"first line no indent",
"second line has indent",
},
indentTabs: 3,
expected: "// first line no indent\n" +
"\t\t\t// second line has indent",
},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
g := NewWithT(t)
output := commentBlock(c.input, c.indentTabs)
g.Expect(output).To(Equal(c.expected))
})
}
}
func TestWordWrap(t *testing.T) {
cases := []struct {
name string
input string
maxLineLength int
expected []string
}{
{
name: "no wrap",
input: "no wrap is required",
maxLineLength: 100,
expected: []string{
"no wrap is required",
},
},
{
name: "wrap after word",
input: "wrap after word",
maxLineLength: 11,
expected: []string{
"wrap after",
"word",
},
},
{
name: "wrap mid word",
input: "wrap mid-word",
maxLineLength: 10,
expected: []string{
"wrap",
"mid-word",
},
},
{
name: "user carriage return",
input: "user carriage\nreturn",
maxLineLength: 100,
expected: []string{
"user carriage",
"return",
},
},
{
name: "multiple lines",
input: "This is a long-winded example.\nIt shows:\n -user-defined carriage returns\n " +
"-wrapping at the max line length\n -removal of extra whitespace around words",
maxLineLength: 22,
expected: []string{
"This is a long-winded",
"example.",
"It shows:",
"-user-defined carriage",
"returns",
"-wrapping at the max",
"line length",
"-removal of extra",
"whitespace around words",
},
},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
g := NewWithT(t)
output := wordWrap(c.input, c.maxLineLength)
g.Expect(output).To(Equal(c.expected))
})
}
}