You can clone with
HTTPS or Subversion.
I think the x || a and x ? a : b should be supported in Mock.Of as long as x can be calculated immediately when mock is set up.
x || a
x ? a : b
m => m.GetProperty("p1").Value == p1
&& (p2 == null || m.GetProperty("p2").Value == p2)
&& (p3 == null || m.GetProperty("p3").Value == p3)
Here p1, p2 and p3 are external variables/parameters.
What should happen is if p2 == null, m.GetProperty("p2") is not mocked at all.
p2 == null