Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions src/World.Net.UnitTests/Countries/CongoTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
namespace World.Net.UnitTests.Countries
{
public sealed class CongoTest
{
private const string CONGO_NAME = "Congo";
private const int CONGO_STATE_COUNT = 12;
private const string CONGO_OFFICIAL_NAME = "Democratic Republic of the Congo";
private const string CONGO_NATIVE_NAME = "République du Congo";
private const string CONGO_CAPITAL = "Brazzaville";
private const int CONGO_NUMERIC_CODE = 178;
private const string CONGO_ISO2_CODE = "CG";
private const string CONGO_ISO3_CODE = "COG";
private const string CONGO_CALLING_CODE = "+242";


[Fact]
public void GetCountry_ReturnsCorrectInformation_ForCongo()
{
// Arrange
CountryIdentifier existingCountryId = CountryIdentifier.Congo;

// Act
var country = CountryProvider.GetCountry(existingCountryId);

//Assert
Assert.Equal(existingCountryId, country.Id);
Assert.Equal(CONGO_NAME, country.Name);
Assert.NotNull(country.States);
Assert.Equal(CONGO_STATE_COUNT, country.States.Count());
Assert.Equal(CONGO_OFFICIAL_NAME, country.OfficialName);
Assert.Equal(CONGO_NATIVE_NAME, country.NativeName);
Assert.Equal(CONGO_CAPITAL, country.Capital);
Assert.Equal(CONGO_NUMERIC_CODE, country.NumericCode);
Assert.Equal(CONGO_ISO2_CODE, country.ISO2Code);
Assert.Equal(CONGO_ISO3_CODE, country.ISO3Code);
Assert.Equal(CONGO_CALLING_CODE, country.CallingCode);
}
}
}
38 changes: 38 additions & 0 deletions src/World.Net.UnitTests/Countries/CookIslandsTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
namespace World.Net.UnitTests.Countries
{
public sealed class CookIslandsTest
{
private const string COOKISLANDS_NAME = "Cook Islands";
private const string COOKISLANDS_OFFICIAL_NAME = "Cook Islands";
private const string COOKISLANDS_NATIVE_NAME = "Cook Islands";
private const string COOKISLANDS_CAPITAL = "Avarua";
private const int COOKISLANDS_NUMERIC_CODE = 184;
private const string COOKISLANDS_ISO2_CODE = "CK";
private const string COOKISLANDS_ISO3_CODE = "COK";
private const string COOKISLANDS_CALLING_CODE = "+682";


[Fact]
public void GetCountry_ReturnsCorrectInformation_ForCookIslands()
{
// Arrange
CountryIdentifier existingCountryId = CountryIdentifier.CookIslands;

// Act
var country = CountryProvider.GetCountry(existingCountryId);

//Assert
Assert.Equal(existingCountryId, country.Id);
Assert.Equal(COOKISLANDS_NAME, country.Name);
Assert.NotNull(country.States);
Assert.Empty(country.States);
Assert.Equal(COOKISLANDS_OFFICIAL_NAME, country.OfficialName);
Assert.Equal(COOKISLANDS_NATIVE_NAME, country.NativeName);
Assert.Equal(COOKISLANDS_CAPITAL, country.Capital);
Assert.Equal(COOKISLANDS_NUMERIC_CODE, country.NumericCode);
Assert.Equal(COOKISLANDS_ISO2_CODE, country.ISO2Code);
Assert.Equal(COOKISLANDS_ISO3_CODE, country.ISO3Code);
Assert.Equal(COOKISLANDS_CALLING_CODE, country.CallingCode);
}
}
}
39 changes: 39 additions & 0 deletions src/World.Net.UnitTests/Countries/CostaRicaTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
namespace World.Net.UnitTests.Countries
{
public sealed class CostaRicaTest
{
private const string COSTARICA_NAME = "Costa Rica";
private const int COSTARICA_STATE_COUNT = 7;
private const string COSTARICA_OFFICIAL_NAME = "Republic of Costa Rica";
private const string COSTARICA_NATIVE_NAME = "Costa Rica";
private const string COSTARICA_CAPITAL = "San Jose";
private const int COSTARICA_NUMERIC_CODE = 188;
private const string COSTARICA_ISO2_CODE = "CR";
private const string COSTARICA_ISO3_CODE = "CRI";
private const string COSTARICA_CALLING_CODE = "+506";


[Fact]
public void GetCountry_ReturnsCorrectInformation_ForCostaRica()
{
// Arrange
CountryIdentifier existingCountryId = CountryIdentifier.CostaRica;

// Act
var country = CountryProvider.GetCountry(existingCountryId);

//Assert
Assert.Equal(existingCountryId, country.Id);
Assert.Equal(COSTARICA_NAME, country.Name);
Assert.NotNull(country.States);
Assert.Equal(COSTARICA_STATE_COUNT, country.States.Count());
Assert.Equal(COSTARICA_OFFICIAL_NAME, country.OfficialName);
Assert.Equal(COSTARICA_NATIVE_NAME, country.NativeName);
Assert.Equal(COSTARICA_CAPITAL, country.Capital);
Assert.Equal(COSTARICA_NUMERIC_CODE, country.NumericCode);
Assert.Equal(COSTARICA_ISO2_CODE, country.ISO2Code);
Assert.Equal(COSTARICA_ISO3_CODE, country.ISO3Code);
Assert.Equal(COSTARICA_CALLING_CODE, country.CallingCode);
}
}
}
39 changes: 39 additions & 0 deletions src/World.Net.UnitTests/Countries/CoteDIvoireTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
namespace World.Net.UnitTests.Countries
{
public sealed class CoteDIvoireTest
{
private const string COTEDIVOIRE_NAME = "Ivory Coast";
private const int COTEDIVOIRE_STATE_COUNT = 31;
private const string COTEDIVOIRE_OFFICIAL_NAME = "Republic of Côte d'Ivoire";
private const string COTEDIVOIRE_NATIVE_NAME = "Côte d'Ivoire";
private const string COTEDIVOIRE_CAPITAL = "Yamoussoukro";
private const int COTEDIVOIRE_NUMERIC_CODE = 384;
private const string COTEDIVOIRE_ISO2_CODE = "CI";
private const string COTEDIVOIRE_ISO3_CODE = "CIV";
private const string COTEDIVOIRE_CALLING_CODE = "+225";


[Fact]
public void GetCountry_ReturnsCorrectInformation_ForCookIslands()
{
// Arrange
CountryIdentifier existingCountryId = CountryIdentifier.CoteDIvoire;

// Act
var country = CountryProvider.GetCountry(existingCountryId);

//Assert
Assert.Equal(existingCountryId, country.Id);
Assert.Equal(COTEDIVOIRE_NAME, country.Name);
Assert.NotNull(country.States);
Assert.Equal(COTEDIVOIRE_STATE_COUNT, country.States.Count());
Assert.Equal(COTEDIVOIRE_OFFICIAL_NAME, country.OfficialName);
Assert.Equal(COTEDIVOIRE_NATIVE_NAME, country.NativeName);
Assert.Equal(COTEDIVOIRE_CAPITAL, country.Capital);
Assert.Equal(COTEDIVOIRE_NUMERIC_CODE, country.NumericCode);
Assert.Equal(COTEDIVOIRE_ISO2_CODE, country.ISO2Code);
Assert.Equal(COTEDIVOIRE_ISO3_CODE, country.ISO3Code);
Assert.Equal(COTEDIVOIRE_CALLING_CODE, country.CallingCode);
}
}
}
49 changes: 49 additions & 0 deletions src/World.Net/Countries/Congo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
namespace World.Net.Countries
{
internal sealed class Congo : ICountry
{
///<inheritdoc/>
public CountryIdentifier Id => CountryIdentifier.Congo;

///<inheritdoc/>
public string Name => nameof(Congo);

///<inheritdoc/>
public string OfficialName { get; } = "Democratic Republic of the Congo";

///<inheritdoc/>
public string NativeName { get; } = "République du Congo";

///<inheritdoc/>
public string Capital { get; } = "Brazzaville";

///<inheritdoc/>
public int NumericCode { get; } = 178;

///<inheritdoc/>
public string ISO2Code { get; } = "CG";

///<inheritdoc/>
public string ISO3Code { get; } = "COG";

///<inheritdoc/>
public string CallingCode { get; } = "+242";

///<inheritdoc/>
public IEnumerable<State> States { get; } =
[
new("Bouenza", "CG-11", "Department"),
new("Brazzaville", "CG-BZV", "Department"),
new("Cuvette", "CG-8", "Department"),
new("Cuvette-Ouest", "CG-15", "Department"),
new("Kouilou", "CG-5", "Department"),
new("Lékoumou", "CG-2", "Department"),
new("Likouala", "CG-7", "Department"),
new("Niari", "CG-9", "Department"),
new("Plateaux", "CG-14", "Department"),
new("Pointe-Noire", "CG-16", "Department"),
new("Pool", "CG-12", "Department"),
new("Sangha", "CG-13", "Department"),
];
}
}
35 changes: 35 additions & 0 deletions src/World.Net/Countries/CookIslands.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
namespace World.Net.Countries
{
internal sealed class CookIslands : ICountry
{
///<inheritdoc/>
public CountryIdentifier Id => CountryIdentifier.CookIslands;

///<inheritdoc/>
public string Name => "Cook Islands";

///<inheritdoc/>
public string OfficialName { get; } = "Cook Islands";

///<inheritdoc/>
public string NativeName { get; } = "Cook Islands";

///<inheritdoc/>
public string Capital { get; } = "Avarua";

///<inheritdoc/>
public int NumericCode { get; } = 184;

///<inheritdoc/>
public string ISO2Code { get; } = "CK";

///<inheritdoc/>
public string ISO3Code { get; } = "COK";

///<inheritdoc/>
public string CallingCode { get; } = "+682";

///<inheritdoc/>
public IEnumerable<State> States { get; } = [];
}
}
44 changes: 44 additions & 0 deletions src/World.Net/Countries/CostaRica.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
namespace World.Net.Countries
{
internal sealed class CostaRica : ICountry
{
///<inheritdoc/>
public CountryIdentifier Id => CountryIdentifier.CostaRica;

///<inheritdoc/>
public string Name => "Costa Rica";

///<inheritdoc/>
public string OfficialName { get; } = "Republic of Costa Rica";

///<inheritdoc/>
public string NativeName { get; } = "Costa Rica";

///<inheritdoc/>
public string Capital { get; } = "San Jose";

///<inheritdoc/>
public int NumericCode { get; } = 188;

///<inheritdoc/>
public string ISO2Code { get; } = "CR";

///<inheritdoc/>
public string ISO3Code { get; } = "CRI";

///<inheritdoc/>
public string CallingCode { get; } = "+506";

///<inheritdoc/>
public IEnumerable<State> States { get; } =
[
new("Alajuela", "CR-A", "Province"),
new("Cartago", "CR-C", "Province"),
new("Guanacaste", "CR-G", "Province"),
new("Heredia", "CR-H", "Province"),
new("Limón", "CR-L", "Province"),
new("Puntarenas", "CR-P", "Province"),
new("San José", "CR-SJ", "Province"),
];
}
}
68 changes: 68 additions & 0 deletions src/World.Net/Countries/CoteD'Ivoire.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
namespace World.Net.Countries
{
internal sealed class CoteDIvoire : ICountry
{
///<inheritdoc/>
public CountryIdentifier Id => CountryIdentifier.CoteDIvoire;

///<inheritdoc/>
public string Name => "Ivory Coast";

///<inheritdoc/>
public string OfficialName { get; } = "Republic of Côte d'Ivoire";

///<inheritdoc/>
public string NativeName { get; } = "Côte d'Ivoire";

///<inheritdoc/>
public string Capital { get; } = "Yamoussoukro";

///<inheritdoc/>
public int NumericCode { get; } = 384;

///<inheritdoc/>
public string ISO2Code { get; } = "CI";

///<inheritdoc/>
public string ISO3Code { get; } = "CIV";

///<inheritdoc/>
public string CallingCode { get; } = "+225";

///<inheritdoc/>
public IEnumerable<State> States { get; } =
[
new("Abidjan", "CI-AB", "Autonomous District"),
new("Agnéby", "CI-16", "Region"),
new("Bafing", "CI-17", "Region"),
new("Bas-Sassandra", "CI-BS", "District"),
new("Bas-Sassandra", "CI-09", "Region"),
new("Comoé", "CI-CM", "District"),
new("Denguélé", "CI-DN", "District"),
new("Denguélé", "CI-10", "Region"),
new("Dix-Huit Montagnes", "CI-06", "Region"),
new("Fromager", "CI-18", "Region"),
new("Gôh-Djiboua", "CI-GD", "District"),
new("Haut-Sassandra", "CI-02", "Region"),
new("Lacs", "CI-07", "Region"),
new("Lacs", "CI-LC", "District"),
new("Lagunes", "CI-01", "Region"),
new("Lagunes", "CI-LG", "District"),
new("Marahoué", "CI-12", "Region"),
new("Montagnes", "CI-MG", "District"),
new("Moyen-Cavally", "CI-19", "Region"),
new("Moyen-Comoé", "CI-05", "Region"),
new("N'zi-Comoé", "CI-11", "Region"),
new("Sassandra-Marahoué", "CI-SM", "District"),
new("Savanes", "CI-03", "Region"),
new("Sud-Bandama", "CI-15", "Region"),
new("Sud-Comoé", "CI-13", "Region"),
new("Vallée du Bandama", "CI-04", "Region"),
new("Vallée du Bandama", "CI-VB", "District"),
new("Woroba", "CI-WR", "District"),
new("Worodougou", "CI-14", "Region"),
new("Yamoussoukro", "CI-YM", "District"),
new("Zanzan", "CI-ZZ", "District"),
];
}
}
4 changes: 4 additions & 0 deletions src/World.Net/Helpers/CountryInitializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ public static Dictionary<CountryIdentifier, ICountry> Initialize()
{ CountryIdentifier.CocosKeelingIslands, new CocosKeelingIslands() },
{ CountryIdentifier.Colombia, new Colombia() },
{ CountryIdentifier.Comoros, new Comoros() },
{ CountryIdentifier.Congo, new Congo() },
{ CountryIdentifier.CostaRica, new CostaRica() },
{ CountryIdentifier.CookIslands, new CookIslands() },
{ CountryIdentifier.CoteDIvoire, new CoteDIvoire() },
{ CountryIdentifier.Croatia, new Croatia() },
{ CountryIdentifier.Cuba, new Cuba() },
{ CountryIdentifier.Curacao, new Curaçao() },
Expand Down