While I'm writing a test case, I found once the logical operator had calculated the result, it wont' execute left statement.
It won't affect my test result, but I found I never notice this before.
Especially in test, we usually expect all the cases are covered although some of them are failed. Throw exception or return failed directly is bad design for testing. So we can not use such as
bool result = case1() && case2() && case3();
to run the test, because once the case1() failed, case2 and case3 wont' be covered, we can use this way to make sure all the cases are covered
bool result = true;
result &= case1();
result &= case2();
result &= case3();
I need to pay attentions to details, I'm not sure all the language are the same.
In this part of demo, I'm going to check whether journal goes into dumpster(recoverable items folder) after I soft deleted it.
result &= (IsFolderEmpty(journalMailboxSession, Microsoft.Exchange.Data.Storage.DefaultFolderType.RecoverableItemsDeletions)
&&IsFolderEmpty(journalMailboxSession, Microsoft.Exchange.Data.Storage.DefaultFolderType.RecoverableItemsPurges))
? : false;