Пример #1
0
        public async Task <IPreparedMessage> CreateAsync(IMessage message)
        {
            Guid id = Guid.NewGuid();

            return(PreparedMessage.Create(id, message.Type,
                                          await _dataProtector.ProtectAsync(id, SharedDataKeys.Queue),
                                          await _dataProtector.ProtectAsync(_messageSerialiser.Serialise(message), SharedDataKeys.Queue)
                                          ));
        }
        public void NoBatchesIfNothingToBatch()
        {
            var preparedMessages = new PreparedMessage[0]
            {
            };

            var batches = Batcher.Batch(preparedMessages);

            Assert.IsEmpty(batches);
        }
Пример #3
0
        public void should_be_able_to_round_trip_between_bytes_and_strings()
        {
            var originalMessage = new PreparedMessage(typeString, messageString, typeDescription);

            var bytes  = originalMessage.ToBytes();
            var result = PreparedMessage.FromBytes(bytes);

            Assert.That(result.TypeName, Is.EqualTo(typeString));
            Assert.That(Encoding.UTF8.GetString(result.SerialisedMessage), Is.EqualTo(messageString));
            Assert.That(result.ContractType, Is.EqualTo(typeDescription));
        }
        public void can_handle_very_long_contract_names()
        {
            messaging.CreateDestination <IMsg>("Test_Destination", Expires.Never);
            IPreparedMessage prepMsg = new PreparedMessage("Example.Types.IMsg", "{}",
                                                           @"Non.eram.nescius;Brute;cum;quae.summis.ingeniis.exquisitaque.doctrina.philosophi.Graeco.sermone.tractavissent;ea.Latinis.litteris.mandaremus;fore.ut.hic.noster.labor.in.varias.reprehensiones.incurreret.nam.quibusdam;et.iis.quidem.non.admodum.indoctis;totum.hoc.displicet.philosophari.quidam.autem.non.tam.id.reprehendunt;si.remissius.agatur;sed.tantum.studium.tamque.multam.operam.ponendam.in.eo.non.arbitrantur.erunt.etiam;et.ii.quidem.eruditi.Graecis.litteris;contemnentes.Latinas;qui.se.dicant.in.Graecis.legendis.operam.malle.consumere.postremo.aliquos.futuros.suspicor;qui.me.ad.alias.litteras.vocent;genus.hoc.scribendi;etsi.sit.elegans;personae.tamen.et.dignitatis.esse.negent.Contra.quos.omnis.dicendum.breviter.existimo.Quamquam.philosophiae.quidem.vituperatoribus.satis.responsum.est.eo.libro;quo.a.nobis.philosophia.defensa.et.collaudata.est;cum.esset.accusata.et.vituperata.ab.Hortensio.qui.liber.cum.et.tibi.probatus.videretur.et.iis;quos.ego.posse.iudicare.arbitrarer;plura.suscepi.veritus.ne.movere.hominum.studia.viderer;retinere.non.posse.Qui.autem;si.maxime.hoc.placeat;moderatius.tamen.id.volunt.fieri;difficilem.quandam.temperantiam.postulant.in.eo;quod.semel.admissum.coerceri.reprimique.non.potest;ut.propemodum.iustioribus.utamur.illis;qui.omnino.avocent.a.philosophia;quam.his;qui.rebus.infinitis.modum.constituant.in.reque.eo.meliore;quo.maior.sit;mediocritatem.desiderent.Sive.enim.ad.sapientiam.perveniri.potest;non.paranda.nobis.solum.ea;sed.fruenda.etiam.[sapientia].est;sive.hoc.difficile.est;tamen.nec.modus.est.ullus.investigandi.veri;nisi.inveneris;et.quaerendi.defatigatio.turpis.est;cum.id;quod.quaeritur;sit.pulcherrimum.etenim.si.delectamur;cum.scribimus;quis.est.tam.invidus;qui.ab.eo.nos.abducat?.sin.laboramus;quis.est;qui.alienae.modum.statuat.industriae?.nam.ut.Terentianus.Chremes.non.inhumanus;qui.novum.vicinum.non.vult.fodere.aut.arare.aut.aliquid.ferre.denique..non.enim.illum.ab.industria;sed.ab.inliberali.labore.deterret;sic.isti.curiosi;quos.offendit.noster.minime.nobis.iniucundus.labor;Example.Types.IMsg");

            messaging.SendPrepared(prepMsg);

            var roundTrip = messaging.TryStartMessageRaw("Test_Destination");

            Assert.That(roundTrip, Is.Not.Null, "Message did not arrive");

            Assert.That(roundTrip.Properties.OriginalType, Is.EqualTo(prepMsg.ContractType), "Contract changed in flight");
        }
        public void Should_be_able_to_send_and_receive_messages_using_prepare_message_intermediates()
        {
            messaging.CreateDestination <IMsg>("Test_Destination", Expires.Never);
            byte[] raw = messaging.PrepareForSend(testMessage).ToBytes();

            messaging.SendPrepared(PreparedMessage.FromBytes(raw));

            var finalObject = (IMetadataFile)messaging.GetMessage <IMsg>("Test_Destination");

            Assert.That(finalObject, Is.Not.Null);
            Assert.That(finalObject.CorrelationId, Is.EqualTo(testMessage.CorrelationId));
            Assert.That(finalObject.Contents, Is.EqualTo(testMessage.Contents));
            Assert.That(finalObject.FilePath, Is.EqualTo(testMessage.FilePath));
            Assert.That(finalObject.HashValue, Is.EqualTo(testMessage.HashValue));
            Assert.That(finalObject.MetadataName, Is.EqualTo(testMessage.MetadataName));
            Assert.That(finalObject.Equals(testMessage), Is.False);
        }
Пример #6
0
    public void SayPreparedMessage(PreparedMessage pm)
    {
        string message = "";

        string[] messages = {};
        switch (pm)
        {
        case PreparedMessage.HITVEH:
            messages = new string[] {
                "You bastard",
                "Kids these days...",
                "Im gonna beat the piss out of you",
                "Why don't you insert that truck up your",
                "Seriously?!",
                "Wa lao eh",
                "KNNBCCB",
                "NBCB new car some more",
                "You duckface",
                "I'm gonna drive that truck up your a-",
                "How can dis b allow?",
                "Thanks Obama",
            };
            message = messages[UnityEngine.Random.Range(0, messages.Length)];
            break;

        case PreparedMessage.KILLPED:
            messages = new string[] {
                "You Motherf-",
                "Hello darkness my old friend...",
                "Wa si liao ah...",
                "Its too early, I haven't even fu-",
                "Shouldn't have cancelled my policy...",
                "used to be an adventurer like you...",
                "Goodbye cruel world",
                "Kanna sai lah",
                "Just like the gypsy woman said...",
                "Urgh kill me now - wait no",
                "How can dis b allow?",
            };
            message = messages[UnityEngine.Random.Range(0, messages.Length)];
            break;

        case PreparedMessage.KILLVEH:
            messages = new string[] {
                "I can't believe you've done this...",
                "NBCBC new car some more",
                "Walao want to die isit",
                "You son of a",
                "You stupid motherfu-",
            };
            message = messages[UnityEngine.Random.Range(0, messages.Length)];
            break;

        default:
            messages = new string[] {
                ""
            };
            message = messages[UnityEngine.Random.Range(0, messages.Length)];
            Debug.LogError("Error: Speechbubble prepared message not found.");
            break;
        }
        Say(message, 3);
    }
Пример #7
0
    public void SayPreparedMessage(PreparedMessage pm, int timeout)
    {
        string message = "";

        string[] messages;
        switch (pm)
        {
        case PreparedMessage.BREAKING:
            message = "An item is breaking soon!";
            break;

        case PreparedMessage.BROKEN:
            message = "You broke an item!";
            break;

        case PreparedMessage.DELIVERED:
            message = "Delivery made.";
            break;

        case PreparedMessage.FLAWLESS:
            message = "Delivered flawlessly!";
            break;

        case PreparedMessage.HITVEH:
            messages = new string[] {
                "You hit another vehicle!",
                "Another vehicle was hit!"
            };
            message = messages[UnityEngine.Random.Range(0, messages.Length)];
            break;

        case PreparedMessage.TOTALLEDVEH:
            messages = new string[] {
                "You destroyed another vehicle!",
                "You totalled someone else's car!"
            };
            message = messages[UnityEngine.Random.Range(0, messages.Length)];
            break;

        case PreparedMessage.KILL:
            messages = new string[] {
                "Uh-oh, you ran over somebody!",
                "Welp, there goes another one.",
                "Somebody was run over!",
                "Why are the wheels turning red? Hmm...",
                "Wonder what that bump was...",
                "Let's hope no one saw that."
            };
            message = messages[UnityEngine.Random.Range(0, messages.Length)];
            break;

        case PreparedMessage.MISSED:
            message = "You missed! Slow down next time";
            break;

        case PreparedMessage.LOWHEALTH:
            message = "Your health is low, watch out!";
            break;

        case PreparedMessage.TAKINGDAMAGE:
            messages = new string[] {
                "Be careful!",
                "Your goods are taking damage!",
            };
            message = messages[UnityEngine.Random.Range(0, messages.Length)];
            break;

        default:
            Debug.LogError("Error: Prepared message not found in enums: " + pm);
            break;
        }
        Say(message, timeout);
    }