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