Introduced BooleanValue enumeration, to solve issues where the difference between an boolean value being absent, or being default could not be distinguished.
Created unit tests  for BooleanValue