Skip to content

Commit 49d2af0

Browse files
committed
Refactor LocalizedString
1 parent 07560e0 commit 49d2af0

File tree

2 files changed

+43
-49
lines changed

2 files changed

+43
-49
lines changed

src/VirtoCommerce.Platform.Core/Common/LocalizedString.cs

+15-21
Original file line numberDiff line numberDiff line change
@@ -6,59 +6,53 @@ namespace VirtoCommerce.Platform.Core.Common;
66

77
public class LocalizedString : ValueObject
88
{
9-
private readonly Dictionary<string, string> _values = [];
9+
public Dictionary<string, string> Values { get; } = [];
1010

11-
public Dictionary<string, string> Values => _values;
12-
13-
public void Set(string languageCode, string value)
11+
public void SetValue(string languageCode, string value)
1412
{
1513
ArgumentNullException.ThrowIfNull(languageCode);
16-
_values[languageCode] = value;
14+
Values[languageCode] = value;
1715
}
1816

19-
public string Get(string languageCode)
17+
public string GetValue(string languageCode)
2018
{
2119
ArgumentNullException.ThrowIfNull(languageCode);
22-
return _values.TryGetValue(languageCode, out var value) ? value : null;
20+
return Values.GetValueOrDefault(languageCode);
2321
}
2422

25-
public bool TryGet(string languageCode, out string value)
23+
public bool TryGetValue(string languageCode, out string value)
2624
{
2725
ArgumentNullException.ThrowIfNull(languageCode);
28-
return _values.TryGetValue(languageCode, out value);
26+
return Values.TryGetValue(languageCode, out value);
2927
}
3028

31-
public void Remove(string languageCode)
29+
public void RemoveValue(string languageCode)
3230
{
3331
ArgumentNullException.ThrowIfNull(languageCode);
34-
_values.Remove(languageCode);
32+
Values.Remove(languageCode);
3533
}
3634

3735
public bool Validate(IList<string> allowedLanguages, out IList<string> invalidLanguages)
3836
{
39-
invalidLanguages = _values.Keys.Where(key => !allowedLanguages.Contains(key)).ToList();
40-
if (invalidLanguages.Count > 0)
41-
{
42-
return false;
43-
}
44-
return true;
37+
invalidLanguages = Values.Keys.Where(key => !allowedLanguages.Contains(key)).ToList();
38+
return invalidLanguages.Count == 0;
4539
}
4640

4741
public void Clean(IList<string> allowedLanguages)
4842
{
49-
var invalidKeys = _values.Keys.Where(key => !allowedLanguages.Contains(key));
43+
var invalidKeys = Values.Keys.Where(key => !allowedLanguages.Contains(key));
5044
foreach (var key in invalidKeys)
5145
{
52-
_values.Remove(key);
46+
Values.Remove(key);
5347
}
5448
}
5549

5650
public override object Clone()
5751
{
5852
var clone = new LocalizedString();
59-
foreach (var kvp in _values)
53+
foreach (var kvp in Values)
6054
{
61-
clone.Set(kvp.Key, kvp.Value);
55+
clone.SetValue(kvp.Key, kvp.Value);
6256
}
6357
return clone;
6458
}

tests/VirtoCommerce.Platform.Core.Tests/Common/LocalizedStringTests.cs

+28-28
Original file line numberDiff line numberDiff line change
@@ -7,105 +7,105 @@ namespace VirtoCommerce.Platform.Core.Tests.Common
77
public class LocalizedStringTests
88
{
99
[Fact]
10-
public void Set_ShouldAddValue()
10+
public void SetValue_ShouldAddValue()
1111
{
1212
// Arrange
1313
var localizedString = new LocalizedString();
1414
var languageCode = "en-US";
1515
var value = "Hello";
1616

1717
// Act
18-
localizedString.Set(languageCode, value);
18+
localizedString.SetValue(languageCode, value);
1919

2020
// Assert
21-
Assert.Equal(value, localizedString.Get(languageCode));
21+
Assert.Equal(value, localizedString.GetValue(languageCode));
2222
}
2323

2424
[Fact]
25-
public void Get_ShouldReturnValue()
25+
public void GetValue_ShouldReturnValue()
2626
{
2727
// Arrange
2828
var localizedString = new LocalizedString();
2929
var languageCode = "en-US";
3030
var value = "Hello";
31-
localizedString.Set(languageCode, value);
31+
localizedString.SetValue(languageCode, value);
3232

3333
// Act
34-
var result = localizedString.Get(languageCode);
34+
var result = localizedString.GetValue(languageCode);
3535

3636
// Assert
3737
Assert.Equal(value, result);
3838
}
3939

4040
[Fact]
41-
public void Get_ShouldReturnNullIfNotFound()
41+
public void GetValue_ShouldReturnNullIfNotFound()
4242
{
4343
// Arrange
4444
var localizedString = new LocalizedString();
4545
var languageCode = "en-US";
4646

4747
// Act
48-
var result = localizedString.Get(languageCode);
48+
var result = localizedString.GetValue(languageCode);
4949

5050
// Assert
5151
Assert.Null(result);
5252
}
5353

5454
[Fact]
55-
public void TryGet_ShouldReturnTrueIfFound()
55+
public void TryGetValue_ShouldReturnTrueIfFound()
5656
{
5757
// Arrange
5858
var localizedString = new LocalizedString();
5959
var languageCode = "en-US";
6060
var value = "Hello";
61-
localizedString.Set(languageCode, value);
61+
localizedString.SetValue(languageCode, value);
6262

6363
// Act
64-
var result = localizedString.TryGet(languageCode, out var resultValue);
64+
var result = localizedString.TryGetValue(languageCode, out var resultValue);
6565

6666
// Assert
6767
Assert.True(result);
6868
Assert.Equal(value, resultValue);
6969
}
7070

7171
[Fact]
72-
public void TryGet_ShouldReturnFalseIfNotFound()
72+
public void TryGetValue_ShouldReturnFalseIfNotFound()
7373
{
7474
// Arrange
7575
var localizedString = new LocalizedString();
7676
var languageCode = "en-US";
7777

7878
// Act
79-
var result = localizedString.TryGet(languageCode, out var resultValue);
79+
var result = localizedString.TryGetValue(languageCode, out var resultValue);
8080

8181
// Assert
8282
Assert.False(result);
8383
Assert.Null(resultValue);
8484
}
8585

8686
[Fact]
87-
public void Remove_ShouldRemoveValue()
87+
public void RemoveValue_ShouldRemoveValue()
8888
{
8989
// Arrange
9090
var localizedString = new LocalizedString();
9191
var languageCode = "en-US";
9292
var value = "Hello";
93-
localizedString.Set(languageCode, value);
93+
localizedString.SetValue(languageCode, value);
9494

9595
// Act
96-
localizedString.Remove(languageCode);
96+
localizedString.RemoveValue(languageCode);
9797

9898
// Assert
99-
Assert.Null(localizedString.Get(languageCode));
99+
Assert.Null(localizedString.GetValue(languageCode));
100100
}
101101

102102
[Fact]
103103
public void Validate_ShouldReturnFalseIfInvalidLanguages()
104104
{
105105
// Arrange
106106
var localizedString = new LocalizedString();
107-
localizedString.Set("en-US", "Hello");
108-
localizedString.Set("fr-FR", "Bonjour");
107+
localizedString.SetValue("en-US", "Hello");
108+
localizedString.SetValue("fr-FR", "Bonjour");
109109
var allowedLanguages = new List<string> { "en-US" };
110110

111111
// Act
@@ -121,7 +121,7 @@ public void Validate_ShouldReturnTrueIfAllLanguagesValid()
121121
{
122122
// Arrange
123123
var localizedString = new LocalizedString();
124-
localizedString.Set("en-US", "Hello");
124+
localizedString.SetValue("en-US", "Hello");
125125
var allowedLanguages = new List<string> { "en-US" };
126126

127127
// Act
@@ -137,34 +137,34 @@ public void Clean_ShouldRemoveInvalidLanguages()
137137
{
138138
// Arrange
139139
var localizedString = new LocalizedString();
140-
localizedString.Set("en-US", "Hello");
141-
localizedString.Set("fr-FR", "Bonjour");
140+
localizedString.SetValue("en-US", "Hello");
141+
localizedString.SetValue("fr-FR", "Bonjour");
142142
var allowedLanguages = new List<string> { "en-US" };
143143

144144
// Act
145145
localizedString.Clean(allowedLanguages);
146146

147147
// Assert
148-
Assert.Null(localizedString.Get("fr-FR"));
149-
Assert.Equal("Hello", localizedString.Get("en-US"));
148+
Assert.Null(localizedString.GetValue("fr-FR"));
149+
Assert.Equal("Hello", localizedString.GetValue("en-US"));
150150
}
151151

152152
[Fact]
153153
public void GetCopy_ShouldReturnCopy()
154154
{
155155
// Arrange
156156
var localizedString = new LocalizedString();
157-
localizedString.Set("en-US", "Hello");
157+
localizedString.SetValue("en-US", "Hello");
158158

159159
// Act
160160
var copy = localizedString.GetCopy() as LocalizedString;
161161

162-
localizedString.Set("fr-FR", "Bonjour");
162+
localizedString.SetValue("fr-FR", "Bonjour");
163163

164164
// Assert
165165
Assert.NotNull(copy);
166-
Assert.Equal("Hello", copy.Get("en-US"));
167-
Assert.Null(copy.Get("fr-FR"));
166+
Assert.Equal("Hello", copy.GetValue("en-US"));
167+
Assert.Null(copy.GetValue("fr-FR"));
168168
}
169169
}
170170
}

0 commit comments

Comments
 (0)