private void TestObjectAPI(Movie a)
        {
            var b = a.UnPack();

            AreEqual(a, b);

            var fbb = new FlatBufferBuilder(1);

            fbb.Finish(Movie.Pack(fbb, b).Value);
            var c = Movie.GetRootAsMovie(fbb.DataBuffer);

            AreEqual(a, c);

            var jsonText = b.SerializeToJson();
            var d        = MovieT.DeserializeFromJson(jsonText);

            AreEqual(a, d);

            var fbBuffer = b.SerializeToBinary();

            Assert.IsTrue(Movie.MovieBufferHasIdentifier(new ByteBuffer(fbBuffer)));
            var e = MovieT.DeserializeFromBinary(fbBuffer);

            AreEqual(a, e);
        }
        public void TestUnionUtility()
        {
            var movie = new MovieT
            {
                MainCharacter = CharacterUnion.FromRapunzel(new RapunzelT {
                    HairLength = 40
                }),
                Characters = new System.Collections.Generic.List <CharacterUnion>
                {
                    CharacterUnion.FromMuLan(new AttackerT {
                        SwordAttackDamage = 10
                    }),
                    CharacterUnion.FromBelle(new BookReaderT {
                        BooksRead = 20
                    }),
                    CharacterUnion.FromOther("Chip"),
                },
            };

            var fbb = new FlatBufferBuilder(100);

            Movie.FinishMovieBuffer(fbb, Movie.Pack(fbb, movie));

            TestObjectAPI(Movie.GetRootAsMovie(fbb.DataBuffer));
        }
Example #3
0
    public MovieT UnPack()
    {
        var _o = new MovieT();

        this.UnPackTo(_o);
        return(_o);
    }
        private void AreEqual(Movie a, MovieT b)
        {
            Assert.AreEqual(a.MainCharacterType, b.MainCharacter.Type);
            Assert.AreEqual(a.MainCharacter <Rapunzel>().Value.HairLength, b.MainCharacter.AsRapunzel().HairLength);

            Assert.AreEqual(a.CharactersLength, b.Characters.Count);
            Assert.AreEqual(a.CharactersType(0), b.Characters[0].Type);
            Assert.AreEqual(a.Characters <Attacker>(0).Value.SwordAttackDamage, b.Characters[0].AsMuLan().SwordAttackDamage);
            Assert.AreEqual(a.CharactersType(1), b.Characters[1].Type);
            Assert.AreEqual(a.Characters <BookReader>(1).Value.BooksRead, b.Characters[1].AsBelle().BooksRead);
            Assert.AreEqual(a.CharactersType(2), b.Characters[2].Type);
            Assert.AreEqual(a.CharactersAsString(2), b.Characters[2].AsOther());
        }
Example #5
0
        private void TestObjectAPI(Movie a)
        {
            var b = a.UnPack();

            AreEqual(a, b);

            var fbb = new FlatBufferBuilder(1);

            fbb.Finish(Movie.Pack(fbb, b).Value);
            var c = Movie.GetRootAsMovie(fbb.DataBuffer);

            AreEqual(a, c);

            var jsonText = b.SerializeToJson();
            var d        = MovieT.DeserializeFromJson(jsonText);

            AreEqual(a, d);
        }
Example #6
0
    public static Offset <Movie> Pack(FlatBufferBuilder builder, MovieT _o)
    {
        if (_o == null)
        {
            return(default(Offset <Movie>));
        }
        var _main_character_type = _o.MainCharacter == null ? Character.NONE : _o.MainCharacter.Type;
        var _main_character      = _o.MainCharacter == null ? 0 : CharacterUnion.Pack(builder, _o.MainCharacter);
        var _characters_type     = default(VectorOffset);

        if (_o.Characters != null)
        {
            var __characters_type = new Character[_o.Characters.Count];
            for (var _j = 0; _j < __characters_type.Length; ++_j)
            {
                __characters_type[_j] = _o.Characters[_j].Type;
            }
            _characters_type = CreateCharactersTypeVector(builder, __characters_type);
        }
        var _characters = default(VectorOffset);

        if (_o.Characters != null)
        {
            var __characters = new int[_o.Characters.Count];
            for (var _j = 0; _j < __characters.Length; ++_j)
            {
                __characters[_j] = CharacterUnion.Pack(builder, _o.Characters[_j]);
            }
            _characters = CreateCharactersVector(builder, __characters);
        }
        return(CreateMovie(
                   builder,
                   _main_character_type,
                   _main_character,
                   _characters_type,
                   _characters));
    }
Example #7
0
    public void UnPackTo(MovieT _o)
    {
        _o.MainCharacter      = new CharacterUnion();
        _o.MainCharacter.Type = this.MainCharacterType;
        switch (this.MainCharacterType)
        {
        default: break;

        case Character.MuLan:
            _o.MainCharacter.Value = this.MainCharacter <Attacker>().HasValue ? this.MainCharacter <Attacker>().Value.UnPack() : null;
            break;

        case Character.Rapunzel:
            _o.MainCharacter.Value = this.MainCharacter <Rapunzel>().HasValue ? this.MainCharacter <Rapunzel>().Value.UnPack() : null;
            break;

        case Character.Belle:
            _o.MainCharacter.Value = this.MainCharacter <BookReader>().HasValue ? this.MainCharacter <BookReader>().Value.UnPack() : null;
            break;

        case Character.BookFan:
            _o.MainCharacter.Value = this.MainCharacter <BookReader>().HasValue ? this.MainCharacter <BookReader>().Value.UnPack() : null;
            break;

        case Character.Other:
            _o.MainCharacter.Value = this.MainCharacterAsString();
            break;

        case Character.Unused:
            _o.MainCharacter.Value = this.MainCharacterAsString();
            break;
        }
        _o.Characters = new List <CharacterUnion>();
        for (var _j = 0; _j < this.CharactersLength; ++_j)
        {
            var _o_Characters = new CharacterUnion();
            _o_Characters.Type = this.CharactersType(_j);
            switch (this.CharactersType(_j))
            {
            default: break;

            case Character.MuLan:
                _o_Characters.Value = this.Characters <Attacker>(_j).HasValue ? this.Characters <Attacker>(_j).Value.UnPack() : null;
                break;

            case Character.Rapunzel:
                _o_Characters.Value = this.Characters <Rapunzel>(_j).HasValue ? this.Characters <Rapunzel>(_j).Value.UnPack() : null;
                break;

            case Character.Belle:
                _o_Characters.Value = this.Characters <BookReader>(_j).HasValue ? this.Characters <BookReader>(_j).Value.UnPack() : null;
                break;

            case Character.BookFan:
                _o_Characters.Value = this.Characters <BookReader>(_j).HasValue ? this.Characters <BookReader>(_j).Value.UnPack() : null;
                break;

            case Character.Other:
                _o_Characters.Value = this.CharactersAsString(_j);
                break;

            case Character.Unused:
                _o_Characters.Value = this.CharactersAsString(_j);
                break;
            }
            _o.Characters.Add(_o_Characters);
        }
    }