Let me present another perspective. If your real code block is as complex as your example, it is not really good practice to write it that way.
"Concise" does not always mean "elegant". Sometimes, it just means "hard to debug".
Imagine if that complex condition was somehow failing - it would be downright annoying to figure out the problem. A better way is to have intermediate variables storing the values of the individual condition blocks. Of course, those intermediate variables need proper names to help readability.
Expand that "brief" code block into the corresponding nested if-else series. Every little if and else in that expanded block is a potential test condition. Now you will see that it is not brief after all. It is complex logic that must be treated with due respect.
With regards to your question, it would help to separate out each of these test conditions into its own test. They can share common setup, etc. using functions. At the unit test level, simpler individual tests are better because they help you pin-point the problem to the exact failure condition.
Organize each test as per the Arrange-Act-Assert pattern for readability of tests:
void test()
{
// ARRANGE
// ACT
// ASSERT
}