using System;
using System.Text;
using FitConnect;
using Microsoft.Extensions.Logging;
using NUnit.Framework;

namespace SenderTest;


public class SenderEncryptionWithoutCertificateTest {
    private Sender _sender = null!;
    private ILogger<SenderEncryptionWithoutCertificateTest> _logger = null!;

    /*
     * Encryption test must be changed for production to only allow extern signed certificates
     * and forbid self-signed certificates.
     */

    [SetUp]
    public void Setup() {
        _logger = LoggerFactory.Create(cfg => cfg.AddConsole())
            .CreateLogger<SenderEncryptionWithoutCertificateTest>();
        _sender = new Sender(_logger,
            FitConnectEndpoints.Create(FitConnectEndpoints.EndpointType.Development));
    }


    [Test]
    public void EncryptData_ShouldNotThrowAnyException() {
        var cypher = _sender.EncryptData(Encoding.UTF8.GetBytes("test"));

        _logger.LogInformation("Cypher: {}", Convert.ToBase64String(cypher));
    }

    
    [Test]
    public void ExportPrivateKey_ShouldNotThrowAnyException() {
        var privateKey = _sender.ExportPrivateKey();
        _logger.LogInformation("Private key: {}", Convert.ToBase64String(privateKey));
    }
    
    

}