public void RoundTrip()
    {
        var arr = (RelationTypes[])Enum.GetValues(typeof(RelationTypes));

        var list = new List <string>(1);

        foreach (RelationTypes item in arr)
        {
            list.Clear();
            RelationTypesCollector.CollectValueStrings(item, list);

            Assert.AreEqual(1, list.Count);
            Assert.IsNotNull(list[0]);

            RelationTypes?comp = RelationTypesConverter.Parse(list[0]);

            Assert.IsTrue(comp.HasValue);
            Assert.AreEqual(comp !.Value, item);

            var comp2 = (RelationTypes)Enum.Parse(
                typeof(RelationTypes), list[0].Replace("-", ""), true);

            Assert.AreEqual(comp, comp2);
        }
    }
    public void DetectAllEnumValues()
    {
        var arr = (RelationTypes[])Enum.GetValues(typeof(RelationTypes));

        var list = new List <string>(1);

        foreach (RelationTypes item in arr)
        {
            list.Clear();
            RelationTypesCollector.CollectValueStrings(item, list);

            Assert.AreEqual(1, list.Count);
        }
    }
    public void CollectValueStringsTest()
    {
        RelationTypes?rel = RelationTypes.Spouse | RelationTypes.CoResident;

        var list = new List <string>();

        RelationTypesCollector.CollectValueStrings(rel, list);

        Assert.AreEqual(2, list.Count);

        // collector darf die Liste nicht löschen!:
        RelationTypesCollector.CollectValueStrings(rel, list);
        Assert.AreEqual(4, list.Count);

        // auf null testen:
        rel = null;
        list.Clear();

        RelationTypesCollector.CollectValueStrings(rel, list);
        Assert.AreEqual(0, list.Count);
    }