public void does_not_exceed_max_packet_size()
{
var udpStub = MockRepository.GenerateStub<IStatsdUDP>();
udpStub.Stub(x => x.MaxUDPPacketSize).Return(300);
var sender = new ThreadSafeConsumerProducerSender(new ThreadSafeConsumerProducerSender.Configuration() { MaxSendDelayMS = 1000 });
sender.StatsdUDP = udpStub;
for (var i = 0; i < 100; i ++)
{
var metricName = (Guid.NewGuid()).ToString();
var metric = new Counting() { Name = metricName, ValueAsInt = 1 };
sender.Send(metric);
}
Thread.Sleep(3000);
IList<object[]> argsPerCall = udpStub.GetArgumentsForCallsMadeOn(x => x.Send(Arg<string>.Is.Anything));
for (var i = 0; i < argsPerCall.Count; i++)
{
var packetSize = ((string)argsPerCall[i][0]).Length;
Assert.That(packetSize, Is.LessThanOrEqualTo(300));
}
}