private void TestModeForInvokeReceive(XModemMode mode)
 {
     RunTestForInvokeReceive(_randomDataGenerator.GetRandomData(128), mode);
     RunTestForInvokeReceive(_randomDataGenerator.GetRandomData(130), mode);
     RunTestForInvokeReceive(_randomDataGenerator.GetRandomData(10000), mode);
     RunTestForInvokeReceive(_randomDataGenerator.GetRandomData(10240), mode);
 }
Exemple #2
0
        /// <summary>
        /// Get the tools needed for a mode.
        /// </summary>
        /// <param name="mode">The mode for which tools are requested.</param>
        /// <returns>The tools.</returns>
        public IXModemTools GetToolsFor(XModemMode mode)
        {
            switch (mode)
            {
            case XModemMode.Checksum:
                return(_checksumTool);

            case XModemMode.CRC:
                return(_CRCTool);

            case XModemMode.OneK:
                return(_oneKTool);

            default:
                string message = "A mode has been added without a"
                                 + " corresponding toolset being created.";
                throw new System.ArgumentOutOfRangeException(message);
            }
        }
        private void RunTestForInvokeReceive(IEnumerable <byte> data, XModemMode mode)
        {
            var        communicator = new ComSendCollection();
            IInvoker   invoker      = new InvokeReceive();
            IFinalizer finalizer    = new FinalizeReceive();
            IContext   context      = new Context {
                Mode         = mode,
                Communicator = communicator,
            };

            var packets = context.Tools.Builder.GetPackets(data, context.Options);

            packets.Add(new List <byte> {
                context.Options.EOT
            });
            communicator.CollectionToSend = packets;

            invoker.Invoke(context);
            finalizer.Finalize(context);
            Assert.AreEqual(data, context.Data);
            Assert.AreEqual(packets.GetRange(0, packets.Count - 1), context.Packets);
        }
 internal ModeUpdatedEventArgs(XModemMode mode, XModemMode oldMode)
 {
     Mode    = mode;
     OldMode = oldMode;
 }