NostrServices/BasicTests/NostrBufTests.cs
2024-01-12 16:22:38 +00:00

45 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Newtonsoft.Json;
using Nostr.Client.Json;
using Nostr.Client.Messages;
using NostrRelay;
namespace BasicTests;
public class Tests
{
private NostrEvent _testEvent = null!;
[SetUp]
public void Setup()
{
var json =
"{\"id\":\"0552df8c6617c8919f1872ce8a0b2834f3f28100e4bf07be8b4aa262e9d59321\",\"pubkey\":\"27154fb873badf69c3ea83a0da6e65d6a150d2bf8f7320fc3314248d74645c64\",\"created_at\":1705062495,\"kind\":1,\"tags\":[[\"r\",\"https://www.coindesk.com/business/2024/01/12/bitcoin-miner-outflows-hit-six-year-highs-ahead-of-halving-sparking-mixed-signals/\"]],\"content\":\"Miner outflow has hit a multi-year high as tens of thousands of bitcoin (BTC), worth over $1 billion, have been sent to exchanges.\\n\\nhttps://www.coindesk.com/business/2024/01/12/bitcoin-miner-outflows-hit-six-year-highs-ahead-of-halving-sparking-mixed-signals/\",\"sig\":\"ba2523600bea47637bcced3b75ec446253dca184783a98ec807bf0a4fc90031152c225e7a39392bb3af23ceafc64aa67d9c10874e8ec6d2c1af268235a554d93\"}";
_testEvent = JsonConvert.DeserializeObject<NostrEvent>(json, NostrSerializer.Settings)!;
}
[Test]
public void TestNostrBuf()
{
var data = NostrBuf.Encode(_testEvent);
Assert.That(data.Length, Is.EqualTo(NostrBuf.CalculateSize(_testEvent)));
var ev = NostrBuf.Decode(data);
Assert.That(ev.Id, Is.EqualTo(_testEvent.Id));
Assert.That(ev.Pubkey, Is.EqualTo(_testEvent.Pubkey));
Assert.That(ev.Sig, Is.EqualTo(_testEvent.Sig));
Assert.That(ev.CreatedAt, Is.EqualTo(_testEvent.CreatedAt));
Assert.That(ev.Kind, Is.EqualTo(_testEvent.Kind));
Assert.That(ev.Tags!.Count, Is.EqualTo(_testEvent.Tags!.Count));
for (var tx = 0; tx < ev.Tags.Count; tx++)
{
Assert.That(ev.Tags[tx].TagIdentifier, Is.EqualTo(_testEvent.Tags[tx].TagIdentifier));
Assert.That(ev.Tags[tx].AdditionalData.Length, Is.EqualTo(_testEvent.Tags[tx].AdditionalData.Length));
for (var ty = 0; ty < ev.Tags[tx].AdditionalData.Length; ty++)
{
Assert.That(ev.Tags[tx].AdditionalData[ty], Is.EqualTo(_testEvent.Tags[tx].AdditionalData[ty]));
}
}
}
}