Skip to content

Commit bf738cc

Browse files
authored
GuineaBissau, Guyana, Haiti, HeardIsland, Honduras, HongKong (#91)
1 parent 96be2ca commit bf738cc

File tree

13 files changed

+557
-0
lines changed

13 files changed

+557
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
namespace World.Net.UnitTests.Countries;
2+
3+
public sealed class GuineaBissauTest : AssertCountryTestBase
4+
{
5+
private const string GUINEABISSAU_COUNTRY_NAME = "Guinea-Bissau";
6+
private const string GUINEABISSAU_NATIVE_NAME = "Guiné-Bissau";
7+
private const string GUINEABISSAU_CAPITAL = "Bissau";
8+
private const string GUINEABISSAU_OFFICIAL_NAME = "Republic of Guinea-Bissau";
9+
private const string GUINEABISSAU_ISO2_CODE = "GW";
10+
private const string GUINEABISSAU_ISO3_CODE = "GNB";
11+
private const int GUINEABISSAU_NUMERIC_CODE = 624;
12+
private readonly string[] GUINEABISSAU_CALLING_CODE = ["+245"];
13+
private const CountryIdentifier EXPECTEDID = CountryIdentifier.GuineaBissau;
14+
15+
private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES =
16+
[
17+
new("Bafatá", "GW-BFA", "Region"),
18+
new("Biombo", "GW-BIB", "Region"),
19+
new("Bissau", "GW-BS", "Region"),
20+
new("Bolama", "GW-BM", "Region"),
21+
new("Cacheu", "GW-CA", "Region"),
22+
new("Gabu", "GW-GA", "Region"),
23+
new("Oio", "GW-OI", "Region"),
24+
new("Quinara", "GW-QU", "Region"),
25+
new("Tombali", "GW-TO", "Region")
26+
];
27+
28+
[Fact]
29+
public void GetCountry_ReturnsCorrectInformation_ForGuineaBissau()
30+
{
31+
// Arrange
32+
// Act
33+
var country = CountryProvider.GetCountry(EXPECTEDID);
34+
35+
// Assert
36+
AssertCorrectInformation(
37+
country,
38+
EXPECTEDID,
39+
GUINEABISSAU_COUNTRY_NAME,
40+
GUINEABISSAU_OFFICIAL_NAME,
41+
GUINEABISSAU_NATIVE_NAME,
42+
GUINEABISSAU_CAPITAL,
43+
GUINEABISSAU_NUMERIC_CODE,
44+
GUINEABISSAU_ISO2_CODE,
45+
GUINEABISSAU_ISO3_CODE,
46+
GUINEABISSAU_CALLING_CODE,
47+
EXPECTED_STATES
48+
);
49+
}
50+
}
51+
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
namespace World.Net.UnitTests.Countries;
2+
3+
public sealed class GuyanaTest : AssertCountryTestBase
4+
{
5+
private const string GUYANA_COUNTRY_NAME = "Guyana";
6+
private const string GUYANA_NATIVE_NAME = "Guyana";
7+
private const string GUYANA_CAPITAL = "Georgetown";
8+
private const string GUYANA_OFFICIAL_NAME = "Co-operative Republic of Guyana";
9+
private const string GUYANA_ISO2_CODE = "GY";
10+
private const string GUYANA_ISO3_CODE = "GUY";
11+
private const int GUYANA_NUMERIC_CODE = 328;
12+
private readonly string[] GUYANA_CALLING_CODE = ["+592"];
13+
private const CountryIdentifier EXPECTEDID = CountryIdentifier.Guyana;
14+
15+
private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES =
16+
[
17+
new("Barima-Waini", "GY-BA", "Region"),
18+
new("Pomeroon-Supenaam", "GY-PT", "Region"),
19+
new("Essequibo Islands-West Demerara", "GY-ES", "Region"),
20+
new("Demerara-Mahaica", "GY-DE", "Region"),
21+
new("Mahaica-Berbice", "GY-MA", "Region"),
22+
new("East Berbice-Corentyne", "GY-EB", "Region"),
23+
new("Cuyuni-Mazaruni", "GY-CU", "Region"),
24+
new("Potaro-Siparuni", "GY-PT", "Region"),
25+
new("Upper Takutu-Upper Essequibo", "GY-UT", "Region"),
26+
new("Upper Demerara-Berbice", "GY-UD", "Region")
27+
];
28+
29+
[Fact]
30+
public void GetCountry_ReturnsCorrectInformation_ForGuyana()
31+
{
32+
// Arrange
33+
// Act
34+
var country = CountryProvider.GetCountry(EXPECTEDID);
35+
36+
// Assert
37+
AssertCorrectInformation(
38+
country,
39+
EXPECTEDID,
40+
GUYANA_COUNTRY_NAME,
41+
GUYANA_OFFICIAL_NAME,
42+
GUYANA_NATIVE_NAME,
43+
GUYANA_CAPITAL,
44+
GUYANA_NUMERIC_CODE,
45+
GUYANA_ISO2_CODE,
46+
GUYANA_ISO3_CODE,
47+
GUYANA_CALLING_CODE,
48+
EXPECTED_STATES
49+
);
50+
}
51+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
namespace World.Net.UnitTests.Countries;
2+
3+
public sealed class HaitiTest : AssertCountryTestBase
4+
{
5+
private const string HAITI_COUNTRY_NAME = "Haiti";
6+
private const string HAITI_NATIVE_NAME = "Haïti";
7+
private const string HAITI_CAPITAL = "Port-au-Prince";
8+
private const string HAITI_OFFICIAL_NAME = "Republic of Haiti";
9+
private const string HAITI_ISO2_CODE = "HT";
10+
private const string HAITI_ISO3_CODE = "HTI";
11+
private const int HAITI_NUMERIC_CODE = 332;
12+
private readonly string[] HAITI_CALLING_CODE = ["+509"];
13+
private const CountryIdentifier EXPECTEDID = CountryIdentifier.Haiti;
14+
15+
private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES =
16+
[
17+
new("Artibonite", "HT-AR", "Department"),
18+
new("Centre", "HT-CE", "Department"),
19+
new("Grand'Anse", "HT-GA", "Department"),
20+
new("Nippes", "HT-NI", "Department"),
21+
new("Nord", "HT-NO", "Department"),
22+
new("Nord-Est", "HT-NE", "Department"),
23+
new("Nord-Ouest", "HT-NW", "Department"),
24+
new("Ouest", "HT-OU", "Department"),
25+
new("Sud", "HT-SD", "Department"),
26+
new("Sud-Est", "HT-SE", "Department")
27+
];
28+
29+
[Fact]
30+
public void GetCountry_ReturnsCorrectInformation_ForHaiti()
31+
{
32+
// Arrange
33+
// Act
34+
var country = CountryProvider.GetCountry(EXPECTEDID);
35+
36+
// Assert
37+
AssertCorrectInformation(
38+
country,
39+
EXPECTEDID,
40+
HAITI_COUNTRY_NAME,
41+
HAITI_OFFICIAL_NAME,
42+
HAITI_NATIVE_NAME,
43+
HAITI_CAPITAL,
44+
HAITI_NUMERIC_CODE,
45+
HAITI_ISO2_CODE,
46+
HAITI_ISO3_CODE,
47+
HAITI_CALLING_CODE,
48+
EXPECTED_STATES
49+
);
50+
}
51+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
namespace World.Net.UnitTests.Countries;
2+
3+
public sealed class HeardIslandAndMcDonaldIslandsTest : AssertCountryTestBase
4+
{
5+
private const string COUNTRY_NAME = "Heard Island and McDonald Islands";
6+
private const string NATIVE_NAME = "Heard Island and McDonald Islands";
7+
private const string CAPITAL = "Atlas Cove";
8+
private const string OFFICIAL_NAME = "Heard Island and McDonald Islands";
9+
private const string ISO2_CODE = "HM";
10+
private const string ISO3_CODE = "HMD";
11+
private const int NUMERIC_CODE = 334;
12+
private readonly string[] CALLING_CODE = []; // No calling code
13+
private const CountryIdentifier EXPECTEDID = CountryIdentifier.HeardIslandAndMcDonaldIslands;
14+
15+
private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES = [];
16+
17+
[Fact]
18+
public void GetCountry_ReturnsCorrectInformation_ForHeardIslandAndMcDonaldIslands()
19+
{
20+
// Arrange
21+
// Act
22+
var country = CountryProvider.GetCountry(EXPECTEDID);
23+
24+
// Assert
25+
AssertCorrectInformation(
26+
country,
27+
EXPECTEDID,
28+
COUNTRY_NAME,
29+
OFFICIAL_NAME,
30+
NATIVE_NAME,
31+
CAPITAL,
32+
NUMERIC_CODE,
33+
ISO2_CODE,
34+
ISO3_CODE,
35+
CALLING_CODE,
36+
EXPECTED_STATES
37+
);
38+
}
39+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
namespace World.Net.UnitTests.Countries;
2+
3+
public sealed class HondurasTest : AssertCountryTestBase
4+
{
5+
private const string HONDURAS_COUNTRY_NAME = "Honduras";
6+
private const string HONDURAS_NATIVE_NAME = "Honduras";
7+
private const string HONDURAS_CAPITAL = "Tegucigalpa";
8+
private const string HONDURAS_OFFICIAL_NAME = "Republic of Honduras";
9+
private const string HONDURAS_ISO2_CODE = "HN";
10+
private const string HONDURAS_ISO3_CODE = "HND";
11+
private const int HONDURAS_NUMERIC_CODE = 340;
12+
private readonly string[] HONDURAS_CALLING_CODE = ["+504"];
13+
private const CountryIdentifier EXPECTEDID = CountryIdentifier.Honduras;
14+
15+
private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES =
16+
[
17+
new("Atlántida", "HN-AT", "Department"),
18+
new("Choluteca", "HN-CH", "Department"),
19+
new("Colón", "HN-CL", "Department"),
20+
new("Comayagua", "HN-CM", "Department"),
21+
new("Copán", "HN-CP", "Department"),
22+
new("Cortés", "HN-CR", "Department"),
23+
new("El Paraíso", "HN-EP", "Department"),
24+
new("Francisco Morazán", "HN-FM", "Department"),
25+
new("Gracias a Dios", "HN-GD", "Department"),
26+
new("Intibucá", "HN-IN", "Department"),
27+
new("Islas de la Bahía", "HN-IB", "Department"),
28+
new("La Paz", "HN-LP", "Department"),
29+
new("Lempira", "HN-LE", "Department"),
30+
new("Ocotepeque", "HN-OC", "Department"),
31+
new("Olancho", "HN-OL", "Department"),
32+
new("Santa Bárbara", "HN-SB", "Department"),
33+
new("Valle", "HN-VA", "Department"),
34+
new("Yoro", "HN-YO", "Department")
35+
];
36+
37+
[Fact]
38+
public void GetCountry_ReturnsCorrectInformation_ForHonduras()
39+
{
40+
// Arrange
41+
// Act
42+
var country = CountryProvider.GetCountry(EXPECTEDID);
43+
44+
// Assert
45+
AssertCorrectInformation(
46+
country,
47+
EXPECTEDID,
48+
HONDURAS_COUNTRY_NAME,
49+
HONDURAS_OFFICIAL_NAME,
50+
HONDURAS_NATIVE_NAME,
51+
HONDURAS_CAPITAL,
52+
HONDURAS_NUMERIC_CODE,
53+
HONDURAS_ISO2_CODE,
54+
HONDURAS_ISO3_CODE,
55+
HONDURAS_CALLING_CODE,
56+
EXPECTED_STATES
57+
);
58+
}
59+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
namespace World.Net.UnitTests.Countries;
2+
3+
public sealed class HongKongTest : AssertCountryTestBase
4+
{
5+
private const string COUNTRY_NAME = "Hong Kong";
6+
private const string NATIVE_NAME = "香港";
7+
private const string CAPITAL = "Hong Kong";
8+
private const string OFFICIAL_NAME = "Hong Kong Special Administrative Region of China";
9+
private const string ISO2_CODE = "HK";
10+
private const string ISO3_CODE = "HKG";
11+
private const int NUMERIC_CODE = 344;
12+
private readonly string[] CALLING_CODE = ["+852"];
13+
private const CountryIdentifier EXPECTEDID = CountryIdentifier.HongKongSAR;
14+
15+
private static readonly (string Name, string IsoCode, string Type)[] EXPECTED_STATES = [];
16+
17+
[Fact]
18+
public void GetCountry_ReturnsCorrectInformation_ForHongKong()
19+
{
20+
// Arrange
21+
// Act
22+
var country = CountryProvider.GetCountry(EXPECTEDID);
23+
24+
// Assert
25+
AssertCorrectInformation(
26+
country,
27+
EXPECTEDID,
28+
COUNTRY_NAME,
29+
OFFICIAL_NAME,
30+
NATIVE_NAME,
31+
CAPITAL,
32+
NUMERIC_CODE,
33+
ISO2_CODE,
34+
ISO3_CODE,
35+
CALLING_CODE,
36+
EXPECTED_STATES
37+
);
38+
}
39+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
namespace World.Net.Countries;
2+
3+
internal sealed class GuineaBissau : ICountry
4+
{
5+
//<inheritdoc/>
6+
public CountryIdentifier Id => CountryIdentifier.GuineaBissau;
7+
8+
//<inheritdoc/>
9+
public string Name { get; } = "Guinea-Bissau";
10+
11+
//<inheritdoc/>
12+
public string OfficialName { get; } = "Republic of Guinea-Bissau";
13+
14+
//<inheritdoc/>
15+
public string NativeName => "Guiné-Bissau";
16+
17+
//<inheritdoc/>
18+
public string Capital { get; } = "Bissau";
19+
20+
//<inheritdoc/>
21+
public int NumericCode { get; } = 624;
22+
23+
//<inheritdoc/>
24+
public string ISO2Code { get; } = "GW";
25+
26+
//<inheritdoc/>
27+
public string ISO3Code { get; } = "GNB";
28+
29+
//<inheritdoc/>
30+
public string[] CallingCode { get; } = ["+245"];
31+
32+
//<inheritdoc/>
33+
public IEnumerable<State> States =>
34+
[
35+
new("Bafatá", "GW-BFA", "Region"),
36+
new("Biombo", "GW-BIB", "Region"),
37+
new("Bissau", "GW-BS", "Region"), // autonomous sector
38+
new("Bolama", "GW-BM", "Region"),
39+
new("Cacheu", "GW-CA", "Region"),
40+
new("Gabu", "GW-GA", "Region"),
41+
new("Oio", "GW-OI", "Region"),
42+
new("Quinara", "GW-QU", "Region"),
43+
new("Tombali", "GW-TO", "Region")
44+
];
45+
}

src/World.Net/Countries/Guyana.cs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
namespace World.Net.Countries;
2+
3+
internal sealed class Guyana : ICountry
4+
{
5+
//<inheritdoc/>
6+
public CountryIdentifier Id => CountryIdentifier.Guyana;
7+
8+
//<inheritdoc/>
9+
public string Name { get; } = "Guyana";
10+
11+
//<inheritdoc/>
12+
public string OfficialName { get; } = "Co-operative Republic of Guyana";
13+
14+
//<inheritdoc/>
15+
public string NativeName => "Guyana";
16+
17+
//<inheritdoc/>
18+
public string Capital { get; } = "Georgetown";
19+
20+
//<inheritdoc/>
21+
public int NumericCode { get; } = 328;
22+
23+
//<inheritdoc/>
24+
public string ISO2Code { get; } = "GY";
25+
26+
//<inheritdoc/>
27+
public string ISO3Code { get; } = "GUY";
28+
29+
//<inheritdoc/>
30+
public string[] CallingCode { get; } = ["+592"];
31+
32+
//<inheritdoc/>
33+
public IEnumerable<State> States =>
34+
[
35+
new("Barima-Waini", "GY-BA", "Region"),
36+
new("Pomeroon-Supenaam", "GY-PT", "Region"),
37+
new("Essequibo Islands-West Demerara", "GY-ES", "Region"),
38+
new("Demerara-Mahaica", "GY-DE", "Region"),
39+
new("Mahaica-Berbice", "GY-MA", "Region"),
40+
new("East Berbice-Corentyne", "GY-EB", "Region"),
41+
new("Cuyuni-Mazaruni", "GY-CU", "Region"),
42+
new("Potaro-Siparuni", "GY-PT", "Region"),
43+
new("Upper Takutu-Upper Essequibo", "GY-UT", "Region"),
44+
new("Upper Demerara-Berbice", "GY-UD", "Region")
45+
];
46+
}

0 commit comments

Comments
 (0)