github.com/tacerus/ldifdiff@v0.0.0-20181030102753-4dccbe38183b/diff_test.go (about)

     1  package ldifdiff
     2  
     3  import (
     4  	"os"
     5  	"strings"
     6  	"testing"
     7  )
     8  
     9  func TestDiff(t *testing.T) {
    10  	ldif, err := Diff(testSourceStr, testTargetStr, nil)
    11  	if ldif != testResultStr {
    12  		t.Error("Expected:\n[" + testResultStr + "]\nGot:\n[" + ldif + "]\n")
    13  	}
    14  	if err != nil {
    15  		t.Error("Expected values, got error: ", err)
    16  	}
    17  	if ldif == "" {
    18  		t.Error("Expected changes, got an empty modifyStr")
    19  	}
    20  
    21  	ldif, err = Diff(testSourceStr, testTargetStr, testIgnoreAttr)
    22  	if err != nil {
    23  		t.Error("Expected values, got error: ", err)
    24  	}
    25  	if ldif == "" {
    26  		t.Error("Expected changes, got an empty modifyStr")
    27  	}
    28  	for _, ignoredAttr := range testIgnoreAttr {
    29  		if strings.Contains(ldif, ignoredAttr+":") {
    30  			t.Error("Attribute", ignoredAttr, "not ignored")
    31  		}
    32  	}
    33  }
    34  
    35  func TestDiffFromFiles(t *testing.T) {
    36  	ldif, err := DiffFromFiles(testSourceLdifFile, testTargetLdifFile, nil)
    37  	if ldif != testResultStr {
    38  		t.Error("Expected:\n[" + testResultStr + "]\nGot:\n[" + ldif + "]\n")
    39  	}
    40  	if err != nil {
    41  		t.Error("Expected values, got error: ", err)
    42  	}
    43  	if ldif == "" {
    44  		t.Error("Expected changes, got an empty modifyStr")
    45  	}
    46  
    47  	ldif, err = DiffFromFiles(testSourceLdifFile, testTargetLdifFile, testIgnoreAttr)
    48  	if err != nil {
    49  		t.Error("Expected values, got error: ", err)
    50  	}
    51  	if ldif == "" {
    52  		t.Error("Expected changes, got an empty modifyStr")
    53  	}
    54  	for _, ignoredAttr := range testIgnoreAttr {
    55  		if strings.Contains(ldif, ignoredAttr+":") {
    56  			t.Error("Attribute", ignoredAttr, "not ignored")
    57  		}
    58  	}
    59  }
    60  
    61  func TestListDiffDn(t *testing.T) {
    62  	dns, err := ListDiffDn(testSourceStr, testTargetStr, nil)
    63  	joinedLines := strings.Join(dns, "\n") + "\n"
    64  	if joinedLines != testResultDnStr {
    65  		t.Error("Expected:\n[" + testResultDnStr + "]\nGot:\n[" + joinedLines + "]\n")
    66  	}
    67  	if err != nil {
    68  		t.Error("Expected values, got error: ", err)
    69  	}
    70  
    71  	dns, err = ListDiffDn(testSourceStr, testTargetStr, testIgnoreAttrDn)
    72  	joinedLines = strings.Join(dns, "\n") + "\n"
    73  	if joinedLines != testResultDnIgnoreAttrStr {
    74  		t.Error("Expected:\n[" + testResultDnIgnoreAttrStr + "]\nGot:\n[" + joinedLines + "]\n")
    75  	}
    76  	if err != nil {
    77  		t.Error("Expected values, got error: ", err)
    78  	}
    79  }
    80  
    81  func TestListDiffDnFromFiles(t *testing.T) {
    82  	dns, err := ListDiffDnFromFiles(testSourceLdifFile, testTargetLdifFile, nil)
    83  	joinedLines := strings.Join(dns, "\n") + "\n"
    84  	if joinedLines != testResultDnStr {
    85  		t.Error("Expected:\n[" + testResultDnStr + "]\nGot:\n[" + joinedLines + "]\n")
    86  	}
    87  	if err != nil {
    88  		t.Error("Expected values, got error: ", err)
    89  	}
    90  }
    91  
    92  func TestDiffFromFilesBig(t *testing.T) {
    93  	if os.Getenv(testBigFilesEnv) != testBigFilesEnvValue {
    94  		t.Skip("Skipping big files test")
    95  	}
    96  	ldif, err := DiffFromFiles(testSourceLdifFileBig, testTargetLdifFileBig, nil)
    97  	if ldif != testResultStr {
    98  		t.Error("Expected:\n[" + testResultStrBig + "]\nGot:\n[" + ldif + "]\n")
    99  	}
   100  	if err != nil {
   101  		t.Error("Expected values, got error: ", err)
   102  	}
   103  	if ldif == "" {
   104  		t.Error("Expected changes, got an empty modifyStr")
   105  	}
   106  }
   107  
   108  func TestDiffBig(t *testing.T) {
   109  	if os.Getenv(testBigFilesEnv) != testBigFilesEnvValue {
   110  		t.Skip("Skipping big files test")
   111  	}
   112  	ldif, err := Diff(testSourceStrBig, testTargetStrBig, nil)
   113  	if ldif != testResultStr {
   114  		t.Error("Expected:\n" + testResultStrBig + "Got:\n" + ldif)
   115  	}
   116  	if err != nil {
   117  		t.Error("Expected values, got error: ", err)
   118  	}
   119  	if ldif == "" {
   120  		t.Error("Expected changes, got an empty modifyStr")
   121  	}
   122  
   123  	ldif, err = Diff(testSourceStrBig, testTargetStrBig, testIgnoreAttr)
   124  	if err != nil {
   125  		t.Error("Expected values, got error: ", err)
   126  	}
   127  	if ldif == "" {
   128  		t.Error("Expected changes, got an empty modifyStr")
   129  	}
   130  	for _, ignoredAttr := range testIgnoreAttr {
   131  		if strings.Contains(ldif, ignoredAttr+":") {
   132  			t.Error("Attribute", ignoredAttr, "not ignored")
   133  		}
   134  	}
   135  }
   136  
   137  func TestCompare(t *testing.T) {
   138  	source, _ := importLdifFile(testSourceLdifFile, nil)
   139  	target, _ := importLdifFile(testTargetLdifFile, nil)
   140  	ldif, err := compare(&source, &target, nil)
   141  	if ldif != testResultStr {
   142  		t.Error("Expected:\n[" + testResultStr + "]\nGot:\n[" + ldif + "]\n")
   143  	}
   144  	if err != nil {
   145  		t.Error("Expected values, got error: ", err)
   146  	}
   147  	if ldif == "" {
   148  		t.Error("Expected changes, got an empty modifyStr")
   149  	}
   150  }