public void ExtracPropertiesAndFieldsValues_ExtractDataFromObject_ShouldBeEquivilent() { const int numberOfPrivatePropertiesAndFields = 8; var mock = new PersonMockData(); var reflectionMetadataInfos = PropertiesMetadataPropertiesCache.ExtracMemberMetadata(mock, mock.GetType()).ToDictionary(x => x.Name); var dissectParams = DissectPropertyInfoMetadata.GetMembers(mock); var numberProperties = dissectParams.Count(); int count = 0; foreach (var member in dissectParams) { var result = reflectionMetadataInfos[member.Name].ValueExtractor(mock); member.Value.ShouldBe(result, $"Propery name {member.Name} doesn't exists."); count++; } count.ShouldBe(numberProperties); count.ShouldBe(numberOfPrivatePropertiesAndFields); reflectionMetadataInfos.Count.ShouldBe(numberProperties); }