Beispiel #1
0
public void Can_deserialize_with_existing_structure()
{
    // given
    var json = JObject.Parse(@"
    {
        '@context': {
           'foaf': 'http://xmlns.com/foaf/0.1/',
           'name': 'foaf:name',
           'lastName': 'foaf:familyName',
           'Person': 'foaf:Person'
        },
        '@id': 'http://t-code.pl/#tomasz',
        '@type': 'Person',
        'name': 'Tomasz',
        'lastName': 'Pluskiewicz'
    }");

    // when
    IEntitySerializer serializer = new EntitySerializer(new StaticContextProvider());
    var person = serializer.Deserialize<Person>(json);

    // then
    Assert.That(person.Name, Is.EqualTo("Tomasz"));
    Assert.That(person.LastName, Is.EqualTo("Pluskiewicz"));
    Assert.That(person.Id, Is.EqualTo(new Uri("http://t-code.pl/#tomasz")));
}
 public void Entity_serializer_can_deserialize_byte_array_as_json_array_of_bytes()
 {
     var serializer = new EntitySerializer(null);
     var obj = JObject.Parse(@"{ _id: ""foo"", PasswordHash: [1,2,3,4] }");
     var doc = new Document();
     var ent = serializer.Read<EntityWithByteArray>(obj, ref doc);
     Assert.That(ent.PasswordHash.Length, Is.EqualTo(4));
 }
        public void Should_deserialize_when_entity_serializer_was_created_with_paremterless_constructor()
        {
            // given
            dynamic raw = JsonConvert.DeserializeObject("{ 'uriProperty': null }");

            // when
            var deserialized = new EntitySerializer().Deserialize <ClassWithSomeUris>((JToken)raw);

            // then
            Assert.That(deserialized.UriProperty, Is.Null);
        }
        private List <string> slotstrings = new List <string>();    //serialization

        public override void ExposeData(EntitySerializer serializer)
        {
            base.ExposeData(serializer);

            serializer.DataField(ref slotstrings, "Slots", new List <string>(0));

            foreach (var slotflagsloaded in slotstrings)
            {
                SlotFlags |= (SlotFlags)Enum.Parse(typeof(SlotFlags), slotflagsloaded.ToUpper());
            }
        }
Beispiel #5
0
 public void SaveGridEntities(EntitySerializer serializer, GridId gridId)
 {
     // serialize all entities to disk
     foreach (var entity in _allEntities)
     {
         if (entity.TryGetComponent <ITransformComponent>(out var transform) && transform.GridID == gridId)
         {
             entity.ExposeData(serializer);
         }
     }
 }
Beispiel #6
0
        public void SaveSystem_GetSaveState_WithEntity_ReturnsSaveStateWithSerialisedEntity()
        {
            var entity = new Entity(0, "New Entity", new IEntityComponent[0]);

            _mutableEntities.Add(entity);

            var result = _saveSystem.GetSaveState();

            var expected = EntitySerializer.Serialize(entity);

            result.Entities.Single().Should().Be(expected);
        }
Beispiel #7
0
        public void CreateReport(ErrorReportEntity report)
        {
            if (report == null)
            {
                throw new ArgumentNullException(nameof(report));
            }

            if (string.IsNullOrEmpty(report.Title) && report.Exception != null)
            {
                report.Title = report.Exception.Message;
                if (report.Title == null)
                {
                    report.Title = "[Exception message was not specified]";
                }
                else if (report.Title.Length > 100)
                {
                    report.Title = report.Title.Substring(0, 100);
                }
            }

            var collections = new List <string>();

            foreach (var context in report.ContextCollections)
            {
                var data = EntitySerializer.Serialize(context);
                if (data.Length > MaxCollectionSize)
                {
                    var tooLargeCtx = new ErrorReportContextCollection(context.Name,
                                                                       new Dictionary <string, string>()
                    {
                        {
                            "Error",
                            $"This collection was larger ({data.Length}bytes) than the threshold of {MaxCollectionSize}bytes"
                        }
                    });

                    data = EntitySerializer.Serialize(tooLargeCtx);
                }
                collections.Add(data);
            }

            _unitOfWork.Insert(report);

            var cols     = string.Join(", ", collections);
            var inboound = new InboundCollection
            {
                JsonData = $"[{cols}]",
                ReportId = report.Id
            };

            _unitOfWork.Insert(inboound);
        }
Beispiel #8
0
        public void AddSerializer()
        {
            var provider = new EntitySerializerProvider();

            Assert.IsFalse(provider.IsSerializable(typeof(object)));

            var serializer = new EntitySerializer(typeof(object));

            provider.AddSerializer(typeof(object), serializer);

            Assert.AreEqual(serializer, provider.GetSerizliser(typeof(object)));
            Assert.IsTrue(provider.IsSerializable(typeof(object)));
        }
Beispiel #9
0
    public void UsesGetContextMethodSerializing()
    {
        // given
        const string expected   = "{ '@context': { '@base': 'http://example.com/test/' } }";
        var          entity     = new ContextInlineMethod("test");
        var          serializer = new EntitySerializer();

        // when
        var json = serializer.Serialize(entity);

        // then
        Assert.True(JToken.DeepEquals(json, JObject.Parse(expected)), $"Actual object is {json}");
    }
Beispiel #10
0
public void UsesInlineContextWhenSerializing(Type entityType)
{
    // given
    const string expected = "{ '@context': { '@base': 'http://example.com/' } }";
    var entity = Activator.CreateInstance(entityType);
    var serializer = new EntitySerializer();

    // when
    var json = serializer.Serialize(entity);

    // then
    Assert.That(JToken.DeepEquals(json, JObject.Parse(expected)), "Actual object is {0}", json);
}
Beispiel #11
0
    public void SerializesTypesPropertyAsAtTypes(Type type, string expectedJson)
    {
        // given
        var expected   = JObject.Parse(expectedJson);
        var entity     = Activator.CreateInstance(type);
        var serializer = new EntitySerializer();

        // when
        var json = serializer.Serialize(entity);

        // then
        Assert.That(JToken.DeepEquals(json, expected), "Actual object was {0}", json);
    }
    public static Concept DeSerializeJSON(string jsonString)
    {
        Debug.Log(jsonString);

        var json = JObject.Parse(jsonString);

        // when
        IEntitySerializer serializer = new EntitySerializer(new StaticContextProvider());
        var person = serializer.Deserialize <Concept>(json);


        return(person);
    }
Beispiel #13
0
public void SerializesTypesPropertyAsAtTypes(Type type, string expectedJson)
{
    // given
    var expected = JObject.Parse(expectedJson);
    var entity = Activator.CreateInstance(type);
    var serializer = new EntitySerializer();

    // when
    var json = serializer.Serialize(entity);

    // then
    Assert.That(JToken.DeepEquals(json, expected), "Actual object was {0}",  json);
}
Beispiel #14
0
    public void UsesInlineContextPropertyWhenSerializing(Type entityType)
    {
        // given
        const string expected   = "{ '@context': { '@base': 'http://example.com/' } }";
        var          entity     = Activator.CreateInstance(entityType);
        var          serializer = new EntitySerializer();

        // when
        var json = serializer.Serialize(entity);

        // then
        Assert.True(JToken.DeepEquals(json, JObject.Parse(expected)), $"Actual object is {json}");
    }
        public async Task ExecuteAsync()
        {
            var sw = Stopwatch.StartNew();

            while (sw.ElapsedMilliseconds < 2000)
            {
                var reportIds = new List <int>();
                using (var cmd = _analysisDbContext.UnitOfWork.CreateDbCommand())
                {
                    cmd.CommandText = "SELECT TOP(10) Id, ContextInfo FROM ErrorReports WHERE cast([ContextInfo] as nvarchar(max)) != ''";
                    using (var reader = await cmd.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                            var reportId = reader.GetInt32(0);
                            var json     = reader.GetString(1);
                            var contexts = EntitySerializer.Deserialize <ErrorReportContext[]>(json);
                            _importer.AddContextCollections(reportId, contexts);
                            reportIds.Add(reportId);
                        }
                    }
                }

                if (!reportIds.Any())
                {
                    break;
                }

                await _importer.Execute();

                _importer.Clear();

                using (var cmd = _analysisDbContext.UnitOfWork.CreateDbCommand())
                {
                    var idStr = string.Join(",", reportIds);
                    cmd.CommandText = $"UPDATE ErrorReports SET ContextInfo='' WHERE Id IN({idStr})";
                    using (var reader = await cmd.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                            var reportId = reader.GetInt32(0);
                            var json     = reader.GetString(1);
                            var contexts = EntitySerializer.Deserialize <ErrorReportContext[]>(json);
                            _importer.AddContextCollections(reportId, contexts);
                        }
                    }
                }
            }

            _analysisDbContext.SaveChanges();
        }
        public void DeserializeMultiple_ReturnsMultipleEntities()
        {
            var multipleSerialised = LoadFile("EntityEngineSystem/TestData/ExpectedSerialization_MultipleEntities.txt");

            var entities = EntitySerializer.DeserializeAll(SystemContainer, new[] { multipleSerialised });

            var expected = new List <Entity>
            {
                GetTestEntity(0),
                GetTestEntity(0)
            };

            entities.Should().BeEquivalentTo(expected, options => options.Using(new EntityListEquivalence()));
        }
        public async Task UpdateAsync(CollectionMetadata collection)
        {
            var props = EntitySerializer.Serialize(collection.Properties);

            using (var cmd = _unitOfWork.CreateDbCommand())
            {
                cmd.CommandText = @"UPDATE CollectionMetadata SET Properties = @Properties
                                    WHERE Id = @id";

                cmd.AddParameter("Id", collection.Id);
                cmd.AddParameter("Properties", props);
                await cmd.ExecuteNonQueryAsync();
            }
        }
        public async Task CreateAsync(CollectionMetadata entity)
        {
            var props = EntitySerializer.Serialize(entity.Properties);

            using (var cmd = _unitOfWork.CreateDbCommand())
            {
                cmd.CommandText =
                    @"INSERT INTO CollectionMetadata (Name, ApplicationId, Properties) VALUES(@Name, @ApplicationId, @Properties)";
                cmd.AddParameter("Name", entity.Name);
                cmd.AddParameter("ApplicationId", entity.ApplicationId);
                cmd.AddParameter("Properties", props);
                await cmd.ExecuteNonQueryAsync();
            }
        }
        public void TestEntity_Deserialize_MatchesTestEntity(int testCase)
        {
            string testData = LoadSerializedData(testCase);

            var entity = new List <IEntity> {
                EntitySerializer.Deserialize(SystemContainer, testData)
            };

            var expected = new List <IEntity> {
                GetTestEntity(testCase)
            };

            entity.Should().BeEquivalentTo(expected, options => options.Using(new EntityListEquivalence()));
        }
Beispiel #20
0
        public RepositoryScenarioContext()
        {
            Store = new TripleStore();
            var contextProvider = new StaticContextProvider();
            var jObject         = new JObject(
                "hydra".IsPrefixOf(Hydra.Hydra.BaseUri),
                "member".IsProperty(Hydra.Hydra.member).Container().Set(),
                "totalItems".IsProperty(Hydra.Hydra.totalItems));

            contextProvider.SetContext(typeof(Collection <Book>), jObject);
            var frameProvider = new WikibusModelFrames();
            var serializer    = new EntitySerializer(contextProvider, frameProvider);

            Repository = new Wikibus.Sources.DotNetRDF.SourcesRepository(new Lazy <ISparqlQueryProcessor>(() => new LeviathanQueryProcessor(Store)), serializer);
        }
Beispiel #21
0
        private void SetKeyBindings()
        {
            var keyBindingsData = keyBindingsDataProvider.GetData();

            var bindings = EntitySerializer.DeserializeAll(_systemContainer, keyBindingsData).SingleOrDefault();

            if (bindings != null)
            {
                _keyBindings = bindings.Components.OfType <KeyBinding>().ToList();
            }
            else
            {
                _keyBindings = new List <KeyBinding>();
            }
        }
Beispiel #22
0
    public EntityPack GenerateShipLoadout(Predicate <HullData> hullFilter = null)
    {
        var hullData = RandomHull(HullType.Ship, hullFilter);
        var hull     = ItemManager.CreateInstance(hullData) as EquippableItem;

        if (hull == null)
        {
            ItemManager.Log("WHAT???");
        }
        var entity = new Ship(ItemManager, null, hull, ItemManager.GameplaySettings.DefaultEntitySettings);

        entity.Faction = Faction;
        OutfitEntity(entity);
        return(EntitySerializer.Pack(entity));
    }
Beispiel #23
0
        protected override Event InitialMasterOperation()
        {
            string       rawData            = EntitySerializer.Serialize <ICalendarInteropSeriesAction>(this.actionToPropagate);
            Event        initialMasterValue = this.actionToPropagate.GetInitialMasterValue();
            IActionQueue actionQueue        = initialMasterValue;
            ActionInfo   actionInfo         = new ActionInfo(this.actionToPropagate.CommandId, DateTime.UtcNow, this.actionToPropagate.GetType().Name, rawData);

            actionQueue.ActionsToAdd = new ActionInfo[]
            {
                actionInfo
            };
            Event @event = base.ExecuteOnMasterWithConflictRetries(new Func <Event, Event>(this.actionToPropagate.InitialMasterOperation), initialMasterValue, true);

            this.precedingAction = SeriesInlineInterop.GetPrecedingActionFromQueue(@event);
            return(@event);
        }
 public Task Import(Stream xmlData, bool append)
 {
     return(Task.Run(() =>
     {
         var import = EntitySerializer.Deserialize <Note[]>(xmlData);
         if (append)
         {
             _db.Notes.Save(import);
         }
         else
         {
             _db.Notes.DeleteAll();
             _db.Notes.Save(import);
         }
     }));
 }
 protected CalendarEventContentAction(byte[] itemId, byte[] folderId, string watermark, Event theEvent, IList <Event> exceptionalOccurrences = null, IList <string> deletedOccurrences = null) : base(watermark)
 {
     base.ItemId             = itemId;
     base.FolderId           = folderId;
     this.EventData          = EntitySerializer.Serialize <Event>(theEvent);
     this.DeletedOccurrences = deletedOccurrences;
     if (exceptionalOccurrences != null)
     {
         List <string> list = new List <string>();
         foreach (Event obj in exceptionalOccurrences)
         {
             list.Add(EntitySerializer.Serialize <Event>(obj));
         }
         this.ExceptionalEventsData = list;
     }
 }
        public override void Start()
        {
            Engine.AddSystem(new FollowSystem());

            Engine.AddSystem(new TouchTrackingSystem());

            Engine.AddSystem(new BuildingRenderer());

            Engine.AddSystem(new CharacterSystem());
            Engine.AddSystem(new Mover());
            Engine.AddSystem(new Roller());
            Engine.AddSystem(new Clamberer());
            Engine.AddSystem(new Slider());
            Engine.AddSystem(new Diver());

            Engine.AddSystem(new PlayerInput());

            Engine.AddSystem(new DiveInitiator());

            base.Start();

            Input.AddButton("jump", new InputButton(Keys.Space, Keys.W, Keys.Up));
            Input.AddButton("slide", new InputButton(Keys.S, Keys.LeftShift, Keys.Down));

            PrefabInitializer.AddRunnerGamePrefabs(PrefabManager);

            var player = PrefabManager.Instantiate("player", new Vector2(2, -.25f));

            PrefabManager.Instantiate("platform", new Vector2(0, 0), 0, new Vector2(48, 1));
            PrefabManager.Instantiate("platform", new Vector2(-23.5f, -10), 0, new Vector2(1, 20));
            PrefabManager.Instantiate("platform", new Vector2(23.5f, -10), 0, new Vector2(1, 20));
            PrefabManager.Instantiate("platform", new Vector2(21f, -2.5f), 0, new Vector2(4, 4));

            PrefabManager.Instantiate("platform", new Vector2(-10, -3f), 0, new Vector2(4, 4));

            PrefabManager.Instantiate("divable", new Vector2(0f, -1.5f), 0, new Vector2(1, 1));
            PrefabManager.Instantiate("buildings", new Vector2(0, 15));

            camera = new CameraPrefab(player.Get <Transform>()).Build();

            var json = new EntitySerializer().Serialize(camera);

            File.WriteAllText("entity.json", json);
            var result = new EntitySerializer().Deserialize(json);

            Engine.AddEntity(camera);
        }
Beispiel #27
0
        public override string Serialize(object obj, Dictionary <int, object> moduleDictionary)
        {
            string output = "";

            PropertyInfo[] properties = obj.GetType().GetProperties();
            output += "<\n";


            if (moduleDictionary.Values.Contains(obj))
            {
                foreach (var item in moduleDictionary)
                {
                    if (item.Value == obj)
                    {
                        output += $"%ID={item.Key}\n";
                    }
                }
            }
            else
            {
                moduleDictionary.Add(moduleDictionary.Count, obj);
                output += $"%ID={moduleDictionary.Count - 1}\n";
            }

            output += $"%Type={obj.GetType().FullName}\n";

            for (int i = 0; i < properties.Count(); i++)
            {
                var prop = properties[i];

                object value = prop.GetValue(obj);

                EntitySerializer serializer = serializers.Single(s => s.CanSerialize(value));

                output += prop.Name + "=" + serializer.Serialize(value, moduleDictionary);

                if (i != properties.Count() - 1)
                {
                    output += "\n";
                }
            }

            output += "\n>";

            return(output);
        }
Beispiel #28
0
 public Task Import(Stream xmlData, bool append)
 {
     return(Task.Run(() =>
     {
         var import = EntitySerializer.Deserialize <FolderLink[]>(xmlData);
         if (append)
         {
             _db.FavoriteFolders.Save(import);
         }
         else
         {
             _db.FavoriteFolders.DeleteAll();
             _db.FavoriteFolders.Save(import);
         }
         _app.CurrentDispatcher.Invoke(() => Folders.UpdateWith(_db.FavoriteFolders.GetAll()));
     }));
 }
Beispiel #29
0
        public ErrorReportDtoMapper()
            : base("ErrorReports")
        {
            Property(x => x.ContextCollections)
            .ColumnName("ContextInfo")
            .ToColumnValue(EntitySerializer.Serialize)
            .ToPropertyValue(colValue => EntitySerializer.Deserialize <ContextCollectionDTO[]>((string)colValue));

            Property(x => x.ReportVersion).Ignore();

            Property(x => x.Exception)
            .ToPropertyValue(EntitySerializer.Deserialize <ReportExeptionDTO>)
            .ToColumnValue(EntitySerializer.Serialize);

            Property(x => x.ReportId)
            .ColumnName("ErrorId");
        }
Beispiel #30
0
 public Task Import(Stream xmlData, bool append)
 {
     return(Task.Run(() =>
     {
         var import = EntitySerializer.Deserialize <LauncherProgram[]>(xmlData);
         if (append)
         {
             _db.Programs.Save(import);
         }
         else
         {
             _db.Programs.DeleteAll();
             _db.Programs.Save(import);
         }
         _application.CurrentDispatcher.Invoke(() => Programs.UpdateWith(_db.Programs.GetAll()));
     }));
 }
Beispiel #31
0
        private void FillData()
        {
            lvGrid.Items.Clear();
            var no = 0;

            foreach (var entity in entities.Entities)
            {
                var item = lvGrid.Items.Add((++no).ToString());
                item.SubItems.Add(entity.Id.Equals(Guid.Empty) ? "" : entity.Id.ToString());
                foreach (var column in columns)
                {
                    var col      = column.Key;
                    var valuestr = "";
                    if (entity.Contains(col))
                    {
                        var value = entity[col];
                        if (value != null)
                        {
                            try
                            {
                                if (form.currentSettings.gridFriendly)
                                {
                                    valuestr = EntitySerializer.AttributeToString(value, column.Value.Metadata);
                                }
                                else
                                {
                                    var basevalue = EntitySerializer.AttributeToBaseType(value);
                                    valuestr = basevalue != null?basevalue.ToString() : "";
                                }
                            }
                            catch
                            {
                                MessageBox.Show("Attribute " + col + " failed");
                            }
                        }
                    }
                    if (string.IsNullOrEmpty(valuestr))
                    {
                        valuestr = "<null>";
                    }
                    item.SubItems.Add(valuestr);
                }
            }
            lvGrid.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
        }
Beispiel #32
0
        /// <summary>
        ///     Persist the entity.
        /// </summary>
        /// <param name="entityType">
        ///     The entity type.
        /// </param>
        /// <param name="entity">
        ///     The entity.
        /// </param>
        /// <param name="write">
        ///    if <c>true</c> writes the entity, otherwise only traversing.
        /// </param>
        /// <param name="isRoot">
        ///    if <c>true</c> if entity is the root, otherwise <c>false</c>.
        /// </param>
        /// <returns>
        ///     The entity key.
        /// </returns>
        /// <exception cref="PersistenceException">
        ///     If entity is not recognized as a valid entity.
        /// </exception>
        private Key Persist(Type entityType, object entity, bool write = true, bool isRoot = false)
        {
            if (this.entitiesWritten.Add(entity))
            {
                var value = EntitySerializer.Serialize(this.entityContext, entityType, entity,
                                                       SerializationBase.DefaultCapacity, write, this.SerializingEntity);
                if (this.entityReference == null)
                {
                    throw new PersistenceException(string.Format(CultureInfo.InvariantCulture,
                                                                 @"{0} is not a valid entity", entityType));
                }

                write = write && (this.newEntity || !this.behaviors.WriteNewOnly());

                var dontCache = this.behaviors.DoNotCache();
                var bypassEntitySpecsFetched =
                    this.newEntity || this.behaviors.IsCreateNew() || this.behaviors.BypassReadCache();
                var entitySpec = !dontCache || !bypassEntitySpecsFetched
                    ? new EntitySpec(this.entityReference, new Key(this.key))
                    : null;

                if (dontCache || this.entityContext.EntitySpecsWritten.Add(entitySpec) || (isRoot && this.behaviors.IsCreateNew()) || this.behaviors.BypassWriteCache())
                {
                    if (write)
                    {
                        if (bypassEntitySpecsFetched || !this.entityContext.EntitySpecsFetched.Contains(entitySpec))
                        {
                            var type = this.entityReference.EntityType;
                            if (this.tableMutatorType != type)
                            {
                                this.tableMutatorType = type;
                                this.tableMutator     = this.entityContext.GetTableMutator(this.entityReference.Namespace,
                                                                                           this.entityReference.TableName);
                            }

                            //// TODO verbosity?
                            //// Logging.TraceEvent(TraceEventType.Verbose, () => string.Format(CultureInfo.InvariantCulture, @"Set {0}@{1}", this.tableMutator.Key, this.key));
                            this.tableMutator.Set(this.key, value);
                        }
                    }
                }
            }

            return(this.key);
        }
Beispiel #33
0
        public void SerializeTest()
        {
            var container = UnityConfigurator.Configure();

            World.Instance = container.Resolve <World>();

            var entity = new Character {
                Id         = "test_entity",
                Names      = "test entity",
                ShortDescr = "test entity"
            };

            var data = EntitySerializer.Serialize(entity);

            Assert.AreEqual("test_entity", data["Vnum"], "Vnum");
            Assert.AreEqual("test entity", data["Names"], "Names");
            Assert.AreEqual("test entity", data["ShortDescr"], "ShortDescr");
        }
 public async Task CreateAsync(Trigger trigger)
 {
     using (var cmd = _unitOfWork.CreateDbCommand())
     {
         cmd.CommandText =
             "INSERT INTO Triggers (ApplicationId, Name, Description, Rules, Actions, LastTriggerAction, RunForNewIncidents, RunForExistingIncidents) " +
             "VALUES(@ApplicationId, @Name, @Description, @Rules, @Actions, @LastTriggerAction, @RunForNewIncidents, @RunForExistingIncidents)";
         cmd.AddParameter("ApplicationId", trigger.ApplicationId);
         cmd.AddParameter("Name", trigger.Name);
         cmd.AddParameter("Description", trigger.Description);
         cmd.AddParameter("Rules", EntitySerializer.Serialize(trigger.Rules));
         cmd.AddParameter("Actions", EntitySerializer.Serialize(trigger.Actions));
         cmd.AddParameter("LastTriggerAction", trigger.LastTriggerAction);
         cmd.AddParameter("RunForNewIncidents", trigger.RunForNewIncidents);
         cmd.AddParameter("RunForExistingIncidents", trigger.RunForExistingIncidents);
         await cmd.ExecuteNonQueryAsync();
     }
 }
 public void Setup()
 {
     _provider = A.Fake<IContextProvider>();
     _serializer = new EntitySerializer(_provider);
 }
 public SerializerTestContext()
 {
     _contextProvider = A.Fake<IContextProvider>();
     _frameProvider = A.Fake<IFrameProvider>();
     _serializer = new EntitySerializer(_contextProvider, _frameProvider);
 }
Beispiel #37
0
public void Can_deserialize_expanded_literal()
{
    // given
    var jsonLd = JObject.Parse(@"
{
  '@context': {
    'age': {
      '@id': 'http://example.com/onto#age'
    }
  },
  'age': {
    '@value': '28',
    '@type': 'http://www.w3.org/2001/XMLSchema#integer'
  }
}");

    // when
    IEntitySerializer serializer = new EntitySerializer(new StaticContextProvider());
    var person = serializer.Deserialize<PersonWithAge>(jsonLd);

    // then
    Assert.That(person.Age, Is.EqualTo(28));
}
Beispiel #38
0
public void Can_serialize_class_instance_to_literal()
{
    // given
    var entity = new RequestLogItem { Ip = IPAddress.Parse("148.9.20.34") };
    var contextProvider = new StaticContextProvider();
    var context = JObject.Parse(@"
{
    'ip': {
        '@id': 'http://rdfs.org/sioc/ns#ip_address'
    }
}");
    contextProvider.SetContext(typeof(RequestLogItem), context);

    // when
    IEntitySerializer serializer = new EntitySerializer(contextProvider);
    dynamic jsonLd = serializer.Serialize(entity);

    // then
    Assert.That((string)jsonLd.ip, Is.EqualTo("148.9.20.34"));
}
Beispiel #39
0
public void Can_deserialize_class_from_expanded_literal()
{
    // given
    var jsonLd = JObject.Parse(@"
{
  '@context': {
    'ip': {
      '@id': 'http://rdfs.org/sioc/ns#ip_address'
    }
  },
  'ip': { '@value': '148.9.20.34' }
}");

    // when
    IEntitySerializer serializer = new EntitySerializer(new StaticContextProvider());
    var person = serializer.Deserialize<RequestLogItem>(jsonLd);

    // then
    Assert.That(person.Ip, Is.EqualTo(IPAddress.Parse("148.9.20.34")));
}
Beispiel #40
0
 internal EntityDiffData(EntitySerializer serializer, BinaryReader reader)
 {
     _serializer = serializer;
     _reader = reader;
 }
Beispiel #41
0
public void Can_serialize_object_to_JSON_LD()
{
    // given
    var person = new Person
        {
            Id = new Uri("http://t-code.pl/#tomasz"),
            Name = "Tomasz",
            LastName = "Pluskiewicz"
        };
    var @context = JObject.Parse("{ '@context': 'http://example.org/context/Person' }");

    var contextProvider = new StaticContextProvider();
    contextProvider.SetContext(typeof(Person), @context);

    // when
    IEntitySerializer serializer = new EntitySerializer(contextProvider);
    dynamic json = serializer.Serialize(person);

    // then
    Assert.That((string)json.name, Is.EqualTo("Tomasz"));
    Assert.That((string)json.lastName, Is.EqualTo("Pluskiewicz"));
    Assert.That((string)json["@id"], Is.EqualTo("http://t-code.pl/#tomasz"));
    Assert.That((string)json["@type"][0], Is.EqualTo("http://xmlns.com/foaf/0.1/Person"));
    Assert.That(json["@context"], Is.Not.Null);
}
Beispiel #42
0
public void Can_deserialize_with_changed_context()
{
    // given
    var expanded = JObject.Parse(@"
    {
        '@id': 'http://t-code.pl/#tomasz',
        '@type': 'http://xmlns.com/foaf/0.1/Person',
        'http://xmlns.com/foaf/0.1/name': 'Tomasz',
        'http://xmlns.com/foaf/0.1/familyName': 'Pluskiewicz'
    }");

    var @context = JObject.Parse(@"
    {
        'foaf': 'http://xmlns.com/foaf/0.1/',
        'name': 'foaf:name',
        'lastName': 'foaf:familyName',
        'Person': 'foaf:Person'
    }");

    var contextProvider = new StaticContextProvider();
    contextProvider.SetContext(typeof(Person), @context);

    // when
    IEntitySerializer serializer = new EntitySerializer(contextProvider);
    var person = serializer.Deserialize<Person>(expanded);

    // then
    Assert.That(person.Name, Is.EqualTo("Tomasz"));
    Assert.That(person.LastName, Is.EqualTo("Pluskiewicz"));
    Assert.That(person.Id, Is.EqualTo(new Uri("http://t-code.pl/#tomasz")));
}