From the description you have two date ranges
1) Start1...End1
2) Start2...End2
and you want to see if they overlap
So, what are the possibilities
A) Error cases
End1 < Start1
End2 < Start2
B) Exact overlap
Start1 == Start2, End1 == End2, Start1 == End1
Start1 == Start2, End1 == End2, Start1 < End1
C) No Overlap
Start1 < End1 < Start2 < End2
Start1 == End1 < Start2 < End2
Start1 < End1 < Start2 == End2
Start1 == End1 < Start2 == End2
D) Full overlap
Start1 == Start2 < End2 < End1
Start1 == Start2 == End2 < End1
Start1 < Start2 < End2 < End1
Start1 < Start2 == End2 < End1
Start1 < Start2 < End2 == End1
Start1 < Start2 == End2 == End1
E) Partial overlap
Start1 < Start2 < End1 < End2
I think that is the lot. It assumes that the ranges are in order (Start1 <= Start2).
You might need to double up the cases, passing in the second ranges first. The answers should still be the same (overlap is not order dependent) but it is possible that the implementation implicitly depends upon the (Start1 <= Start2) and fails if the dates are entered the other way.
Each of the above becomes a test case.
NOTE: if 0 length (start == end) ranges are not allowed, they become an error case and can be removed from other sections.
It's a lot of test cases for a simple function but you have 4 variables (each date) and a set of relationships between them and each combination of relationshships gives a different answer.
You need to decide if a full exaustive testing of this worth the effort or will a selection of the most common and 'most likely to cause the algorithm problems' (heavily subjective) cases suffice.
I hope this is what you were looking for and is useful,
Alan.