public void IMemberType_To_MemberTypeDisplay()
    {
        // Arrange
        var memberType = MemberTypeBuilder.CreateSimpleMemberType();
        var alias      = memberType.PropertyTypes.Last().Alias;

        memberType.SetIsSensitiveProperty(alias, true);
        memberType.SetMemberCanEditProperty(alias, true);
        memberType.SetMemberCanViewProperty(alias, true);
        MemberTypeBuilder.EnsureAllIds(memberType, 8888);

        // Act
        var result = _sut.Map <MemberTypeDisplay>(memberType);

        // Assert
        Assert.AreEqual(memberType.Alias, result.Alias);
        Assert.AreEqual(memberType.Description, result.Description);
        Assert.AreEqual(memberType.Icon, result.Icon);
        Assert.AreEqual(memberType.Id, result.Id);
        Assert.AreEqual(memberType.Name, result.Name);
        Assert.AreEqual(memberType.ParentId, result.ParentId);
        Assert.AreEqual(memberType.Path, result.Path);
        Assert.AreEqual(memberType.Thumbnail, result.Thumbnail);
        Assert.AreEqual(memberType.IsContainer, result.IsContainer);
        Assert.AreEqual(memberType.CreateDate, result.CreateDate);
        Assert.AreEqual(memberType.UpdateDate, result.UpdateDate);

        Assert.AreEqual(memberType.PropertyGroups.Count(), result.Groups.Count());
        for (var i = 0; i < memberType.PropertyGroups.Count(); i++)
        {
            Assert.AreEqual(memberType.PropertyGroups.ElementAt(i).Id, result.Groups.ElementAt(i).Id);
            Assert.AreEqual(memberType.PropertyGroups.ElementAt(i).Name, result.Groups.ElementAt(i).Name);
            var propTypes = memberType.PropertyGroups.ElementAt(i).PropertyTypes;

            Assert.AreEqual(propTypes.Count(), result.Groups.ElementAt(i).Properties.Count());
            for (var j = 0; j < propTypes.Count(); j++)
            {
                Assert.AreEqual(propTypes.ElementAt(j).Id, result.Groups.ElementAt(i).Properties.ElementAt(j).Id);
                Assert.AreEqual(propTypes.ElementAt(j).DataTypeId, result.Groups.ElementAt(i).Properties.ElementAt(j).DataTypeId);

                Assert.AreEqual(memberType.MemberCanViewProperty(propTypes.ElementAt(j).Alias), result.Groups.ElementAt(i).Properties.ElementAt(j).MemberCanViewProperty);
                Assert.AreEqual(memberType.MemberCanEditProperty(propTypes.ElementAt(j).Alias), result.Groups.ElementAt(i).Properties.ElementAt(j).MemberCanEditProperty);
            }
        }

        Assert.AreEqual(memberType.AllowedContentTypes.Count(), result.AllowedContentTypes.Count());
        for (var i = 0; i < memberType.AllowedContentTypes.Count(); i++)
        {
            Assert.AreEqual(memberType.AllowedContentTypes.ElementAt(i).Id.Value, result.AllowedContentTypes.ElementAt(i));
        }
    }