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);
        }