Hi Michael,
You can use pattern matching
listTF = {True, False, False, True};
listT = {True, True, True, True};
listTF // MatchQ[{True ..}]
(* False *)
listT // MatchQ[{True ..}]
(* True *)
Combine that with mapping a predicate function
allTrue[list_, test_] := test /@ list // MatchQ[{True ..}]
allTrue[{2, 3, 4, 6, 8}, EvenQ]
(* False *)
allTrue[{2, 4, 6, 8}, EvenQ]
(* True *)