1+ #region License
2+ // Copyright (c) 2007 James Newton-King
3+ //
4+ // Permission is hereby granted, free of charge, to any person
5+ // obtaining a copy of this software and associated documentation
6+ // files (the "Software"), to deal in the Software without
7+ // restriction, including without limitation the rights to use,
8+ // copy, modify, merge, publish, distribute, sublicense, and/or sell
9+ // copies of the Software, and to permit persons to whom the
10+ // Software is furnished to do so, subject to the following
11+ // conditions:
12+ //
13+ // The above copyright notice and this permission notice shall be
14+ // included in all copies or substantial portions of the Software.
15+ //
16+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17+ // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18+ // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19+ // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20+ // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21+ // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22+ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23+ // OTHER DEALINGS IN THE SOFTWARE.
24+ #endregion
25+
26+ #if ! NET20
27+ using System ;
28+ using System . Collections ;
29+ using System . Collections . Generic ;
30+ using System . Runtime . Serialization ;
31+ using Newtonsoft . Json . Converters ;
32+ using Newtonsoft . Json . Serialization ;
33+ #if DNXCORE50
34+ using Xunit ;
35+ using Test = Xunit . FactAttribute ;
36+ using Assert = Newtonsoft . Json . Tests . XUnitAssert ;
37+ #else
38+ using NUnit . Framework ;
39+ #endif
40+
41+ namespace Newtonsoft . Json . Tests . Issues
42+ {
43+ [ TestFixture ]
44+ public class Issue2082
45+ {
46+ [ Test ]
47+ public void Test ( )
48+ {
49+ CamelCaseNamingStrategy namingStrategy = new CamelCaseNamingStrategy ( processDictionaryKeys : true , overrideSpecifiedNames : false ) ;
50+
51+ TestClass c = new TestClass { Value = TestEnum . UpperCaseName } ;
52+ string json = JsonConvert . SerializeObject ( c , new JsonSerializerSettings
53+ {
54+ ContractResolver = new DefaultContractResolver
55+ {
56+ NamingStrategy = namingStrategy
57+ } ,
58+ Converters = new [ ] { new StringEnumConverter { NamingStrategy = namingStrategy } }
59+ } ) ;
60+
61+ Assert . AreEqual ( @"{""value"":""UPPER_CASE_NAME""}" , json ) ;
62+ }
63+
64+ public class TestClass
65+ {
66+ public TestEnum Value { get ; set ; }
67+ }
68+
69+ public enum TestEnum
70+ {
71+ [ EnumMember ( Value = "UPPER_CASE_NAME" ) ]
72+ UpperCaseName
73+ }
74+ }
75+ }
76+ #endif
0 commit comments