github.com/jordwest/imap-server@v0.0.0-20200627020849-1cf758ba359f/types/flags_test.go (about)

     1  package types
     2  
     3  import "testing"
     4  
     5  func TestCombine(t *testing.T) {
     6  	c1 := CombineFlags(FlagSeen, FlagDraft|FlagDeleted)
     7  
     8  	if c1 != (FlagSeen | FlagDraft | FlagDeleted) {
     9  		t.Errorf("Combined flags do not match")
    10  	}
    11  }
    12  
    13  func TestSetReset(t *testing.T) {
    14  	c1 := (FlagSeen | FlagDraft | FlagDeleted)
    15  	c1 = c1.ResetFlags(FlagDraft)
    16  
    17  	expected := (FlagSeen | FlagDeleted)
    18  	if c1 != expected {
    19  		t.Errorf("Expected %d, Actual %d", expected, c1)
    20  	}
    21  
    22  	// What if we try to remove a flag that already doesn't exist?
    23  	c1 = c1.ResetFlags(FlagDraft)
    24  	if c1 != expected {
    25  		t.Errorf("Expected %d, Actual %d", expected, c1)
    26  	}
    27  
    28  }
    29  
    30  func TestHasFlags(t *testing.T) {
    31  	c1 := (FlagSeen | FlagDraft | FlagDeleted)
    32  
    33  	if !c1.HasFlags(FlagSeen) {
    34  		t.Errorf("HasFlags should return true")
    35  	}
    36  
    37  	if !c1.HasFlags(FlagSeen | FlagDraft | FlagDeleted) {
    38  		t.Errorf("HasFlags should return true")
    39  	}
    40  
    41  	if c1.HasFlags(FlagSeen | FlagDraft | FlagDeleted | FlagRecent) {
    42  		t.Errorf("HasFlags should return false")
    43  	}
    44  
    45  }
    46  
    47  func TestFlagsFromString(t *testing.T) {
    48  	c1 := FlagsFromString("\\Deleted \\Seen")
    49  
    50  	expected := Flags(FlagDeleted | FlagSeen)
    51  
    52  	if c1 != expected {
    53  		t.Errorf("Expected %d, Actual %d", expected, c1)
    54  	}
    55  }