public void At_ShouldReturnNewPacketWithTimestamp() { using (var timestamp = new Timestamp(1)) { var str = "str"; var packet = new StringPacket(str).At(timestamp); Assert.AreEqual(str, packet.Get()); Assert.AreEqual(timestamp, packet.Timestamp()); using (var newTimestamp = new Timestamp(2)) { var newPacket = packet.At(newTimestamp); Assert.AreEqual(str, newPacket.Get()); Assert.AreEqual(newTimestamp, newPacket.Timestamp()); } Assert.AreEqual(timestamp, packet.Timestamp()); } }