private function processIntent(SlimEcho\RequestIntent $echoRequest, array $user)
 {
     $speechSO = new SlimEcho\ResponseSpeechSO();
     $slots = $echoRequest->getSlots();
     $noun = $slots['Item']['value'];
     if (isset($slots['Status'])) {
         $status = $slots['Status']['value'];
     } else {
         $status = null;
     }
     if (isset($status)) {
         // updating a status
         $user[$noun] = ['status' => $status, 'since' => date('r')];
         $speechSO->setType($speechSO::TYPE_PLAIN_TEXT);
         $speechSO->setText("I've made a note that the {$noun} are {$status} ");
     } else {
         // reporting on a prior status
         if (!isset($user[$noun])) {
             $speechSO->setType($speechSO::TYPE_PLAIN_TEXT);
             $speechSO->setText("Sorry, I don't seem to have a record of your {$noun} ");
         } else {
             $status = $user[$noun]['status'];
             $speechSO->setType($speechSO::TYPE_PLAIN_TEXT);
             $speechSO->setText("Your {$noun} are {$status} ");
         }
     }
     $speech = SlimEcho\ResponseSpeech::Factory($speechSO);
     $echoResponseSO = new SlimEcho\ResponseSO();
     $echoResponseSO->endSession();
     $echoResponseSO->setOutputSpeech($speech);
     $this->putUserRecord($user);
     return $echoResponseSO;
 }
 public function testIsValid()
 {
     $instance = new ResponseSO();
     $this->assertFalse($instance->isValid());
     $r = new ReflectionClass(ResponseSO::class);
     $p = $r->getProperty('continueSession');
     $p->setAccessible(true);
     $p->setValue($instance, true);
     $this->assertTrue($instance->isValid());
 }