public void RebroadcastSettings_Clone_Returns_Deep_Copy_Of_Original()
        {
            var original = new RebroadcastSettings() {
                Enabled = true,
                Format = RebroadcastFormat.Avr,
                Name = "The name",
                Port = 1234,
            };

            var copy = (RebroadcastSettings)original.Clone();
            Assert.AreNotSame(original, copy);

            foreach(var property in typeof(RebroadcastSettings).GetProperties()) {
                switch(property.Name) {
                    case "Enabled":     Assert.AreEqual(true, copy.Enabled); break;
                    case "Format":      Assert.AreEqual(RebroadcastFormat.Avr, copy.Format); break;
                    case "Name":        Assert.AreEqual("The name", copy.Name); break;
                    case "Port":        Assert.AreEqual(1234, copy.Port); break;
                    default:            throw new NotImplementedException();
                }
            }
        }