в channelRead канала handleradapter, который я пишу в файл, я знаю, как использовать встроенный канал для модульного тестирования обработчиков netty, но как выполнить модульное тестирование этого обработчика, когда мы выполняем внутри него файловый ввод-вывод (ChannelRead)?что-то вроде макета без зависимости от файла ввода / вывода.
public class LogHandler : ChannelHandlerAdapter
{
const string Path = @"L:\Log.txt";
public override void ChannelActive(IChannelHandlerContext context)
{
base.ChannelActive(context);
}
public override Task WriteAsync(IChannelHandlerContext context, object message)
{
Logger.SentLog(message as IByteBuffer);
return context.WriteAsync(message as IByteBuffer);
}
public override void ChannelRead(IChannelHandlerContext context, object message)
{
string msg = Convertor.ByteBufferToString(message as IByteBuffer);
IByteBuffer initialMessage = Unpooled.Buffer(1024);
byte[] messageBytes = Encoding.UTF8.GetBytes(msg);
initialMessage.WriteBytes(messageBytes);
using (StreamWriter writer = new StreamWriter(Path, true))
{
writer.WriteLine($"(Read){System.DateTime.Now} -> {BitConverter.ToString(messageBytes).Replace("-"," ")}");
}
if (msg != "Timeout")
{
base.ChannelRead(context, message);
}
}
}