Ejemplo n.º 1
0
        private void CheckDeserialize(object msg, string message)
        {
            Log.Info("testing " + message);
            var serializer = new HyperionSerializer((ExtendedActorSystem)Sys);
            var bytes      = serializer.ToBinary(msg);
            var restored   = serializer.FromBinary(bytes, msg.GetType());

            Assert.NotNull(restored);
        }
Ejemplo n.º 2
0
        public void Test_deserialization()
        {
            //CoffeMakeFailedEvent
            var msg = new Akka.Actor.Status.Failure(new UndefinedCoffeMachineException());
            //var msg =
            var serializer = new HyperionSerializer((ExtendedActorSystem)Sys);
            var bytes      = serializer.ToBinary(msg);
            var restored   = serializer.FromBinary(bytes, msg.GetType());

            Assert.NotNull(restored);
        }
Ejemplo n.º 3
0
        public override object FromBinary(byte[] bytes, Type type)
        {
            var obj = _serializer.FromBinary(bytes, type);

            if (obj is IClusterShardingSerializable)
            {
                throw new Exception($"THIS ISN'T SUPPOSED TO BE SERIALIZED. Type: {obj.GetType().FullName}");
            }

            // IShardRegionCommand isn't serialized using cluster sharding serializer
            if (!(obj is IShardRegionCommand))
            {
                var typeName = obj.GetType().AssemblyQualifiedName;
                if (typeName.StartsWith("Akka.Cluster.Sharding") && !typeName.Contains("Tests"))
                {
                    throw new Exception($"THIS ISN'T SUPPOSED TO BE SERIALIZED. Type: {typeName}");
                }
            }
            return(obj);
        }
Ejemplo n.º 4
0
        public void Setup_surrogate_should_work()
        {
            var surrogated = new List <Foo>();
            var setup      = HyperionSerializerSetup.Empty
                             .WithSurrogates(new [] { Surrogate.Create <Foo, FooSurrogate>(
                                                          foo =>
                {
                    surrogated.Add(foo);
                    return(new FooSurrogate(foo.Bar + "."));
                },
                                                          surrogate => new Foo(surrogate.Bar)) });
            var settings   = setup.ApplySettings(HyperionSerializerSettings.Default);
            var serializer = new HyperionSerializer((ExtendedActorSystem)Sys, settings);

            var expected     = new Foo("bar");
            var serialized   = serializer.ToBinary(expected);
            var deserialized = serializer.FromBinary <Foo>(serialized);

            deserialized.Bar.Should().Be("bar.");
            surrogated.Count.Should().Be(1);
            surrogated[0].Should().BeEquivalentTo(expected);
        }
Ejemplo n.º 5
0
        public string Hyperion_serialize_string()
        {
            var bytes = HyperionSerializer.ToBinary(TestString);

            return(HyperionSerializer.FromBinary <string>(bytes));
        }