--- /dev/null
+<?php
+
+namespace RedUNIT\Base;
+
+use RedUNIT\Base as Base;
+use RedBeanPHP\Facade as R;
+
+/**
+ * Issue 408
+ *
+ * Tests whether this specific issue on github has been resolved.
+ * Tests whether we can use export on beans having arrays in properties.
+ *
+ * @file RedUNIT/Mysql/Issue408.php
+ * @desc Test whether we can export beans with arrays in properties
+ * (deserialized/serialized on open/update).
+ * @author Gabor de Mooij and the RedBeanPHP Community
+ * @license New BSD/GPLv2
+ *
+ * (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community.
+ * This source file is subject to the New BSD/GPLv2 License that is bundled
+ * with this source code in the file license.txt.
+ */
+class Issue408 extends Base
+{
+
+ /**
+ * In the past it was not possible to export beans
+ * like 'feed' (Model_Feed).
+ *
+ * @return void
+ */
+ public function testExportIssue()
+ {
+ R::nuke();
+ $feed = R::dispense( 'feed' );
+ $feed->post = array(
+ 'first',
+ 'second'
+ );
+ R::store( $feed );
+ $rows = R::getAll('SELECT * FROM feed');
+ asrt( $rows[0]['post'], '["first","second"]' );
+ $feed = $feed->fresh();
+ asrt( is_array( $feed->post ), TRUE );
+ asrt( $feed->post[0], 'first' );
+ asrt( $feed->post[1], 'second' );
+ R::store( $feed );
+ $rows = R::getAll('SELECT * FROM feed');
+ asrt( $rows[0]['post'], '["first","second"]' );
+ $feed = R::load( 'feed', $feed->id );
+ $feed->post[] = 'third';
+ R::store( $feed );
+ $rows = R::getAll('SELECT * FROM feed');
+ asrt( $rows[0]['post'], '["first","second","third"]' );
+ $feed = $feed->fresh();
+ asrt( is_array( $feed->post ), TRUE );
+ asrt( $feed->post[0], 'first' );
+ asrt( $feed->post[1], 'second' );
+ asrt( $feed->post[2], 'third' );
+ //now the catch: can we use export?
+ //PHP Fatal error: Call to a member function export() on a non-object
+ $feeds = R::exportAll( R::find( 'feed' ) );
+ asrt( is_array( $feeds ), TRUE );
+ $feed = reset( $feeds );
+ asrt( $feed['post'][0], 'first' );
+ asrt( $feed['post'][1], 'second' );
+ asrt( $feed['post'][2], 'third' );
+ //can we also dup()?
+ $feedOne = R::findOne( 'feed' );
+ R::store( R::dup( $feedOne ) );
+ asrt( R::count( 'feed' ), 2 );
+ //can we delete?
+ R::trash( $feedOne );
+ asrt( R::count( 'feed' ), 1 );
+ $feedTwo = R::findOne( 'feed' );
+ $feed = $feedTwo->export();
+ asrt( $feed['post'][0], 'first' );
+ asrt( $feed['post'][1], 'second' );
+ asrt( $feed['post'][2], 'third' );
+ }
+}