public void CanSerialize()
        {
            var supportedTypes = new[]
            {
                typeof(ConnectionSettingsA),
                typeof(ConnectionSettingsB)
            };

            var serializer = new ConnectionSettingsSerializer(supportedTypes);

            var settings = serializer.Serialize(new ConnectionSettings[]
            {
                new ConnectionSettingsA {
                    SettingA = "SettingA"
                },
                new ConnectionSettingsB {
                    SettingB = "SettingB"
                }
            });

            settings.ShouldNotBeNull();
        }
        public void CanDeserialize()
        {
            var supportedTypes = new[]
            {
                typeof(ConnectionSettingsA),
                typeof(ConnectionSettingsB)
            };

            var serializer = new ConnectionSettingsSerializer(supportedTypes);

            var settings = serializer.Serialize(new ConnectionSettings[]
            {
                new ConnectionSettingsA {
                    SettingA = "SettingA", BuildsPerProject = 5
                },
                new ConnectionSettingsB {
                    SettingB = "SettingB", BuildsPerProject = 5
                }
            });

            serializer.Deserialize(settings).Length.ShouldBe(2);
        }