-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathIPApiCoreTest.cs
More file actions
122 lines (103 loc) · 4.33 KB
/
IPApiCoreTest.cs
File metadata and controls
122 lines (103 loc) · 4.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
using System;
using System.Collections.Generic;
using Xunit;
using IPinfo.Models;
namespace IPinfo.Tests
{
public class IPApiCoreTest
{
[Fact]
public void TestGetDetailsIPV4()
{
string ip = "8.8.8.8";
IPinfoClientCore client = new IPinfoClientCore.Builder()
.AccessToken(Environment.GetEnvironmentVariable("IPINFO_TOKEN"))
.Build();
IPResponseCore actual = client.IPApi.GetDetails(ip);
Assert.Equal("8.8.8.8", actual.IP);
Assert.Equal("dns.google", actual.Hostname);
Assert.False(actual.Bogon);
// Geo assertions
Assert.NotNull(actual.Geo);
Assert.NotNull(actual.Geo.City);
Assert.NotNull(actual.Geo.Region);
Assert.NotNull(actual.Geo.RegionCode);
Assert.Equal("US", actual.Geo.CountryCode);
Assert.Equal("United States", actual.Geo.Country);
Assert.Equal("United States", actual.Geo.CountryName);
Assert.False(actual.Geo.IsEU);
Assert.NotNull(actual.Geo.Continent);
Assert.NotNull(actual.Geo.ContinentCode);
Assert.NotEqual(0, actual.Geo.Latitude);
Assert.NotEqual(0, actual.Geo.Longitude);
Assert.NotNull(actual.Geo.Timezone);
Assert.NotNull(actual.Geo.PostalCode);
Assert.Equal("🇺🇸", actual.Geo.CountryFlag.Emoji);
Assert.Equal("U+1F1FA U+1F1F8", actual.Geo.CountryFlag.Unicode);
Assert.Equal("https://cdn.ipinfo.io/static/images/countries-flags/US.svg", actual.Geo.CountryFlagURL);
Assert.Equal("USD", actual.Geo.CountryCurrency.Code);
Assert.Equal("$", actual.Geo.CountryCurrency.Symbol);
Assert.Equal("NA", actual.Geo.ContinentInfo.Code);
Assert.Equal("North America", actual.Geo.ContinentInfo.Name);
// AS assertions
Assert.NotNull(actual.As);
Assert.Equal("AS15169", actual.As.Asn);
Assert.NotNull(actual.As.Name);
Assert.NotNull(actual.As.Domain);
Assert.NotNull(actual.As.Type);
// Network flags
Assert.False(actual.IsAnonymous);
Assert.True(actual.IsAnycast);
Assert.True(actual.IsHosting);
Assert.False(actual.IsMobile);
Assert.False(actual.IsSatellite);
}
[Fact]
public void TestGetDetailsIPV6()
{
string ip = "2001:4860:4860::8888";
IPinfoClientCore client = new IPinfoClientCore.Builder()
.AccessToken(Environment.GetEnvironmentVariable("IPINFO_TOKEN"))
.Build();
IPResponseCore actual = client.IPApi.GetDetails(ip);
Assert.Equal("2001:4860:4860::8888", actual.IP);
// Geo assertions
Assert.NotNull(actual.Geo);
Assert.Equal("US", actual.Geo.CountryCode);
Assert.Equal("United States", actual.Geo.Country);
Assert.NotNull(actual.Geo.City);
Assert.NotNull(actual.Geo.Region);
// AS assertions
Assert.NotNull(actual.As);
Assert.NotNull(actual.As.Asn);
Assert.NotNull(actual.As.Name);
Assert.NotNull(actual.As.Domain);
// Network flags
Assert.False(actual.IsAnonymous);
Assert.False(actual.IsMobile);
Assert.False(actual.IsSatellite);
}
[Fact]
public void TestBogonIPV4()
{
string ip = "127.0.0.1";
IPinfoClientCore client = new IPinfoClientCore.Builder()
.AccessToken(Environment.GetEnvironmentVariable("IPINFO_TOKEN"))
.Build();
IPResponseCore actual = client.IPApi.GetDetails(ip);
Assert.Equal("127.0.0.1", actual.IP);
Assert.True(actual.Bogon);
}
[Fact]
public void TestBogonIPV6()
{
string ip = "2001:0:c000:200::0:255:1";
IPinfoClientCore client = new IPinfoClientCore.Builder()
.AccessToken(Environment.GetEnvironmentVariable("IPINFO_TOKEN"))
.Build();
IPResponseCore actual = client.IPApi.GetDetails(ip);
Assert.Equal("2001:0:c000:200::0:255:1", actual.IP);
Assert.True(actual.Bogon);
}
}
}