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

     1  //go:build unit
     2  // +build unit
     3  
     4  package config
     5  
     6  import (
     7  	"io"
     8  	"strings"
     9  	"testing"
    10  )
    11  
    12  func TestReadPipelineDefaults(t *testing.T) {
    13  
    14  	var d PipelineDefaults
    15  
    16  	t.Run("Success case", func(t *testing.T) {
    17  		d0 := strings.NewReader("general:\n  testStepKey1: testStepValue1")
    18  		d1 := strings.NewReader("general:\n  testStepKey2: testStepValue2")
    19  		err := d.ReadPipelineDefaults([]io.ReadCloser{io.NopCloser(d0), io.NopCloser(d1)})
    20  
    21  		if err != nil {
    22  			t.Errorf("Got error although no error expected: %v", err)
    23  		}
    24  
    25  		t.Run("Defaults 0", func(t *testing.T) {
    26  			expected := "testStepValue1"
    27  			if d.Defaults[0].General["testStepKey1"] != expected {
    28  				t.Errorf("got: %v, expected: %v", d.Defaults[0].General["testStepKey1"], expected)
    29  			}
    30  		})
    31  
    32  		t.Run("Defaults 1", func(t *testing.T) {
    33  			expected := "testStepValue2"
    34  			if d.Defaults[1].General["testStepKey2"] != expected {
    35  				t.Errorf("got: %v, expected: %v", d.Defaults[1].General["testStepKey2"], expected)
    36  			}
    37  		})
    38  	})
    39  
    40  	t.Run("Read failure", func(t *testing.T) {
    41  		var rc errReadCloser
    42  		err := d.ReadPipelineDefaults([]io.ReadCloser{rc})
    43  		if err == nil {
    44  			t.Errorf("Got no error although error expected.")
    45  		}
    46  	})
    47  
    48  	t.Run("Unmarshalling failure", func(t *testing.T) {
    49  		myConfig := strings.NewReader("general:\n\ttestStepKey: testStepValue")
    50  		err := d.ReadPipelineDefaults([]io.ReadCloser{io.NopCloser(myConfig)})
    51  		if err == nil {
    52  			t.Errorf("Got no error although error expected.")
    53  		}
    54  	})
    55  }