profileShare

rasmusjy / splitapp-backend-modular-monolith

Read-only snapshot

No repository description.

main default branch 418 files Expires Sep 13, 2026, 9:06 AM
LangStrTests.cs 2,201 bytes
1 using SplitApp.Shared.Kernel.Localization;
2
3 namespace SplitApp.Modules.Trips.Tests;
4
5 public class LangStrTests
6 {
7 [Fact]
8 public void Constructor_WithDefaultCulture_StoresValueUnderDefaultKey()
9 {
10 var s = new LangStr("Hello", "en");
11 Assert.Equal("Hello", s.Translate("en"));
12 }
13
14 [Fact]
15 public void Translate_WithUnknownCulture_FallsBackToDefault()
16 {
17 var s = new LangStr();
18 s["en"] = "Hello";
19 Assert.Equal("Hello", s.Translate("fr"));
20 }
21
22 [Fact]
23 public void Translate_WithRegionalCulture_FallsBackToNeutralCulture()
24 {
25 var s = new LangStr();
26 s["et"] = "Tere";
27 Assert.Equal("Tere", s.Translate("et-EE"));
28 }
29
30 [Theory]
31 [InlineData("en", "Hello")]
32 [InlineData("et", "Tere")]
33 [InlineData("de", "Hallo")]
34 public void Translate_ReturnsCorrectValueForKnownCulture(string culture, string expected)
35 {
36 var s = new LangStr();
37 s["en"] = "Hello";
38 s["et"] = "Tere";
39 s["de"] = "Hallo";
40 Assert.Equal(expected, s.Translate(culture));
41 }
42
43 [Fact]
44 public void ImplicitOperator_FromString_CreatesLangStrWithCurrentCulture()
45 {
46 LangStr s = "Test";
47 Assert.Equal("Test", s.Translate());
48 }
49
50 [Fact]
51 public void Translate_EmptyDictionary_ReturnsNull()
52 {
53 var s = new LangStr();
54 Assert.Null(s.Translate("en"));
55 }
56
57 [Fact]
58 public void ToString_EmptyDictionary_ReturnsFourQuestionMarks()
59 {
60 var s = new LangStr();
61 Assert.Equal("????", s.ToString());
62 }
63
64 [Fact]
65 public void Constructor_EmptyCulture_ThrowsApplicationException()
66 {
67 Assert.Throws<ApplicationException>(() => new LangStr("value", ""));
68 }
69
70 [Fact]
71 public void SetTranslation_OverwritesExistingCultureValue()
72 {
73 var s = new LangStr();
74 s["et"] = "Tere";
75 s.SetTranslation("Tervist", "et");
76 Assert.Equal("Tervist", s.Translate("et"));
77 }
78
79 [Fact]
80 public void ImplicitOperatorToString_OnNullLangStr_ReturnsLiteralNullString()
81 {
82 LangStr? s = null;
83 string asString = s!;
84 Assert.Equal("null", asString);
85 }
86 }
87