at main 4.3 kB view raw
1using AltBot.Core.Models; 2using Microsoft.Extensions.Logging; 3using Moq; 4using Xunit; 5 6namespace AltBot.Core.Tests.Models; 7 8public class CidTests 9{ 10 private readonly Mock<ILogger<Cid>> _loggerMock; 11 12 public CidTests() 13 { 14 _loggerMock = new Mock<ILogger<Cid>>(); 15 } 16 17 [Theory] 18 [InlineData("QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG")] 19 [InlineData("bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi")] 20 public void Create_ValidCid_ReturnsCidInstance(string validCid) 21 { 22 // Act 23 var cid = Cid.Create(validCid); 24 25 // Assert 26 Assert.NotNull(cid); 27 Assert.Equal(validCid, cid.Value); 28 } 29 30 [Theory] 31 [InlineData("")] 32 [InlineData(" ")] 33 [InlineData(null)] 34 [InlineData("invalid$characters")] 35 public void Create_InvalidCid_ReturnsNull(string? invalidCid) 36 { 37 // Act 38 var cid = Cid.Create(invalidCid!); 39 40 // Assert 41 Assert.Null(cid); 42 } 43 44 [Fact] 45 public void Parse_ValidCid_ReturnsCidInstance() 46 { 47 // Arrange 48 const string validCid = "QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG"; 49 50 // Act 51 var cid = Cid.Parse(validCid, null); 52 53 // Assert 54 Assert.NotNull(cid); 55 Assert.Equal(validCid, cid.Value); 56 } 57 58 [Fact] 59 public void Parse_InvalidCid_ThrowsFormatException() 60 { 61 // Arrange 62 const string invalidCid = "invalid$characters"; 63 64 // Act & Assert 65 Assert.Throws<FormatException>(() => Cid.Parse(invalidCid, null)); 66 } 67 68 [Fact] 69 public void TryParse_ValidCid_ReturnsTrue() 70 { 71 // Arrange 72 const string validCid = "QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG"; 73 74 // Act 75 var success = Cid.TryParse(validCid, null, out var cid); 76 77 // Assert 78 Assert.True(success); 79 Assert.NotNull(cid); 80 Assert.Equal(validCid, cid.Value); 81 } 82 83 [Theory] 84 [InlineData("")] 85 [InlineData(null)] 86 [InlineData("invalid$characters")] 87 public void TryParse_InvalidCid_ReturnsFalse(string? invalidCid) 88 { 89 // Act 90 var success = Cid.TryParse(invalidCid, null, out var cid); 91 92 // Assert 93 Assert.False(success); 94 Assert.Null(cid); 95 } 96 97 [Fact] 98 public void Equals_SameValue_ReturnsTrue() 99 { 100 // Arrange 101 var cid1 = Cid.Parse("QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG", null); 102 var cid2 = Cid.Parse("QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG", null); 103 104 // Act & Assert 105 Assert.True(cid1.Equals(cid2)); 106 Assert.True(cid1 == cid2); 107 } 108 109 [Fact] 110 public void Equals_DifferentValue_ReturnsFalse() 111 { 112 // Arrange 113 var cid1 = Cid.Parse("QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG", null); 114 var cid2 = Cid.Parse("bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi", null); 115 116 // Act & Assert 117 Assert.False(cid1.Equals(cid2)); 118 Assert.False(cid1 == cid2); 119 } 120 121 [Fact] 122 public void ToString_ReturnsValue() 123 { 124 // Arrange 125 const string cidString = "QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG"; 126 var cid = Cid.Parse(cidString, null); 127 128 // Act 129 var result = cid.ToString(); 130 131 // Assert 132 Assert.Equal(cidString, result); 133 } 134 135 [Fact] 136 public void ImplicitConversion_ToString_ReturnsValue() 137 { 138 // Arrange 139 const string cidString = "QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG"; 140 var cid = Cid.Parse(cidString, null); 141 142 // Act 143 string result = cid; 144 145 // Assert 146 Assert.Equal(cidString, result); 147 } 148 149 [Fact] 150 public void ExplicitConversion_FromString_ReturnsCid() 151 { 152 // Arrange 153 const string cidString = "QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG"; 154 155 // Act 156 var cid = (Cid)cidString; 157 158 // Assert 159 Assert.Equal(cidString, cid.Value); 160 } 161 162 [Fact] 163 public void Load_AnyString_ReturnsCid() 164 { 165 // Arrange 166 const string cidString = "anyStringValue"; 167 168 // Act 169 var cid = Cid.Load(cidString); 170 171 // Assert 172 Assert.NotNull(cid); 173 Assert.Equal(cidString, cid.Value); 174 } 175}