public void it_should_set_and_get_named_headers_correctly() { var collection = new HeaderCollection(); foreach (var namedHeader in collection.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(property => (property.CanRead) && (property.CanWrite) && (property.Name != "Item"))) { var value = (namedHeader.PropertyType == typeof(string) ? (object)"test" : 1); namedHeader.SetValue(collection, value); namedHeader.GetValue(collection).Should().Be(value); } }