Austin Schuh | e89fa2d | 2019-08-14 20:24:23 -0700 | [diff] [blame] | 1 | var assert = require('assert'); |
| 2 | |
| 3 | var flatbuffers = require('../js/flatbuffers').flatbuffers; |
| 4 | var Test = require(process.argv[2]); |
| 5 | |
| 6 | function main() { |
| 7 | var fbb = new flatbuffers.Builder(); |
| 8 | |
| 9 | var charTypes = [ |
| 10 | Test.Character.Belle, |
| 11 | Test.Character.MuLan, |
| 12 | Test.Character.BookFan, |
| 13 | ]; |
| 14 | |
| 15 | Test.Attacker.startAttacker(fbb); |
| 16 | Test.Attacker.addSwordAttackDamage(fbb, 5); |
| 17 | var attackerOffset = Test.Attacker.endAttacker(fbb); |
| 18 | |
| 19 | var charTypesOffset = Test.Movie.createCharactersTypeVector(fbb, charTypes); |
| 20 | var charsOffset = Test.Movie.createCharactersVector( |
| 21 | fbb, |
| 22 | [ |
| 23 | Test.BookReader.createBookReader(fbb, 7), |
| 24 | attackerOffset, |
| 25 | Test.BookReader.createBookReader(fbb, 2), |
| 26 | ] |
| 27 | ); |
| 28 | |
| 29 | Test.Movie.startMovie(fbb); |
| 30 | Test.Movie.addCharactersType(fbb, charTypesOffset); |
| 31 | Test.Movie.addCharacters(fbb, charsOffset); |
| 32 | Test.Movie.finishMovieBuffer(fbb, Test.Movie.endMovie(fbb)); |
| 33 | |
| 34 | var buf = new flatbuffers.ByteBuffer(fbb.asUint8Array()); |
| 35 | |
| 36 | var movie = Test.Movie.getRootAsMovie(buf); |
| 37 | |
| 38 | assert.strictEqual(movie.charactersTypeLength(), charTypes.length); |
| 39 | assert.strictEqual(movie.charactersLength(), movie.charactersTypeLength()); |
| 40 | |
| 41 | for (var i = 0; i < charTypes.length; ++i) { |
| 42 | assert.strictEqual(movie.charactersType(i), charTypes[i]); |
| 43 | } |
| 44 | |
| 45 | var bookReader7 = movie.characters(0, new Test.BookReader()); |
| 46 | assert.strictEqual(bookReader7.booksRead(), 7); |
| 47 | |
| 48 | var attacker = movie.characters(1, new Test.Attacker()); |
| 49 | assert.strictEqual(attacker.swordAttackDamage(), 5); |
| 50 | |
| 51 | var bookReader2 = movie.characters(2, new Test.BookReader()); |
| 52 | assert.strictEqual(bookReader2.booksRead(), 2); |
| 53 | |
| 54 | console.log('FlatBuffers union vector test: completed successfully'); |
| 55 | } |
| 56 | |
| 57 | main(); |