oss-example
            
            example
            CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****
            100
            
            false
            
                example
                CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****
                false
                2019-04-09T07:27:28.000Z
                
                    1234512528586****
                    12345125285864390
                
            
            
                example
                CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****
                false
                2019-04-09T07:27:28.000Z
                "250F8A0AE989679A22926A875F0A2****"
                Normal
                93731
                Standard
                
                    1234512528586****
                    12345125285864390
                
            
            
                pic.jpg
                CAEQMxiBgMCZov2D0BYiIDY4MDllOTc2YmY5MjQxMzdiOGI3OTlhNTU0ODIx****
                true
                2019-04-09T07:27:28.000Z
                "3663F7B0B9D3153F884C821E7CF4****"
                Normal
                574768
                IA
                
                    1234512528586****
                    12345125285864390
                
            
        
        BBBB;
    private $validXml1 = <<
        
            oss-example
            
            example
            CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****
            100
            
            false
            
                example
                CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****
                true
                2019-04-09T07:27:28.000Z
                
                    1234512528586****
                    12345125285864390
                
            
            
                example-1
                CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****
                2019-04-09T07:27:28.000Z
                
                    1234512528586****
                    12345125285864390
                
            
            
                example-2
                CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****
                2019-04-09T07:27:28.000Z
                "250F8A0AE989679A22926A875F0A2****"
                Normal
                93731
                Standard
                
                    1234512528586****
                    12345125285864390
                
            
        
        BBBB;
    private $invalidXml = <<
        
        
        BBBB;
    public function testParseValidXml()
    {
        $response = new ResponseCore(array(), $this->validXml, 200);
        $result = new ListObjectVersionsResult($response);
        $this->assertTrue($result->isOK());
        $this->assertNotNull($result->getData());
        $this->assertNotNull($result->getRawResponse());
        $list = $result->getData();
        $this->assertEquals(0, count($list->getPrefixList()));
        $this->assertEquals(1, count($list->getDeleteMarkerList()));
        $this->assertEquals(2, count($list->getObjectVersionList()));
        $this->assertEquals('oss-example', $list->getBucketName());
        $this->assertEquals('', $list->getPrefix());
        $this->assertEquals('example', $list->getKeyMarker());
        $this->assertEquals('CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****', $list->getVersionIdMarker());
        $this->assertEquals(100, $list->getMaxKeys());
        $this->assertEquals('', $list->getDelimiter());
        $this->assertEquals('false', $list->getIsTruncated());
        $deleteMarkerList = $list->getDeleteMarkerList();
        $this->assertEquals('example', $deleteMarkerList[0]->getKey());
        $this->assertEquals('CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****', $deleteMarkerList[0]->getVersionId());
        $this->assertEquals('false', $deleteMarkerList[0]->getIsLatest());
        $this->assertEquals('2019-04-09T07:27:28.000Z', $deleteMarkerList[0]->getLastModified());
    
        $objectVersionList = $list->getObjectVersionList();
        $this->assertEquals('example', $objectVersionList[0]->getKey());
        $this->assertEquals('CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****', $objectVersionList[0]->getVersionId());
        $this->assertEquals('false', $objectVersionList[0]->getIsLatest());
        $this->assertEquals('2019-04-09T07:27:28.000Z', $objectVersionList[0]->getLastModified());
        $this->assertEquals('"250F8A0AE989679A22926A875F0A2****"', $objectVersionList[0]->getETag());
        $this->assertEquals('Normal', $objectVersionList[0]->getType());
        $this->assertEquals(93731, $objectVersionList[0]->getSize());
        $this->assertEquals('Standard', $objectVersionList[0]->getStorageClass());
        $this->assertEquals('pic.jpg', $objectVersionList[1]->getKey());
        $this->assertEquals('CAEQMxiBgMCZov2D0BYiIDY4MDllOTc2YmY5MjQxMzdiOGI3OTlhNTU0ODIx****', $objectVersionList[1]->getVersionId());
        $this->assertEquals('true', $objectVersionList[1]->getIsLatest());
        $this->assertEquals('2019-04-09T07:27:28.000Z', $objectVersionList[1]->getLastModified());
        $this->assertEquals('"3663F7B0B9D3153F884C821E7CF4****"', $objectVersionList[1]->getETag());
        $this->assertEquals('Normal', $objectVersionList[1]->getType());
        $this->assertEquals(574768, $objectVersionList[1]->getSize());
        $this->assertEquals('IA', $objectVersionList[1]->getStorageClass());
        $response = new ResponseCore(array(), $this->validXml1, 200);
        $result = new ListObjectVersionsResult($response);
        $this->assertTrue($result->isOK());
        $this->assertNotNull($result->getData());
        $this->assertNotNull($result->getRawResponse());
        $list = $result->getData();
        $this->assertEquals(0, count($list->getPrefixList()));
        $this->assertEquals(2, count($list->getDeleteMarkerList()));
        $this->assertEquals(1, count($list->getObjectVersionList()));
        $this->assertEquals('oss-example', $list->getBucketName());
        $this->assertEquals('', $list->getPrefix());
        $this->assertEquals('example', $list->getKeyMarker());
        $this->assertEquals('CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****', $list->getVersionIdMarker());
        $this->assertEquals(100, $list->getMaxKeys());
        $this->assertEquals('', $list->getDelimiter());
        $this->assertEquals('false', $list->getIsTruncated());
        $deleteMarkerList = $list->getDeleteMarkerList();
        $this->assertEquals('example', $deleteMarkerList[0]->getKey());
        $this->assertEquals('CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****', $deleteMarkerList[0]->getVersionId());
        $this->assertEquals('true', $deleteMarkerList[0]->getIsLatest());
        $this->assertEquals('2019-04-09T07:27:28.000Z', $deleteMarkerList[0]->getLastModified());
    
        $this->assertEquals('example-1', $deleteMarkerList[1]->getKey());
        $this->assertEquals('CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****', $deleteMarkerList[1]->getVersionId());
        $this->assertEquals('', $deleteMarkerList[1]->getIsLatest());
        $this->assertEquals('2019-04-09T07:27:28.000Z', $deleteMarkerList[1]->getLastModified());
        $objectVersionList = $list->getObjectVersionList();
        $this->assertEquals('example-2', $objectVersionList[0]->getKey());
        $this->assertEquals('CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****', $objectVersionList[0]->getVersionId());
        $this->assertEquals('', $objectVersionList[0]->getIsLatest());
        $this->assertEquals('2019-04-09T07:27:28.000Z', $objectVersionList[0]->getLastModified());
        $this->assertEquals('"250F8A0AE989679A22926A875F0A2****"', $objectVersionList[0]->getETag());
        $this->assertEquals('Normal', $objectVersionList[0]->getType());
        $this->assertEquals(93731, $objectVersionList[0]->getSize());
        $this->assertEquals('Standard', $objectVersionList[0]->getStorageClass());
    }
    public function testParseNullXml()
    {
        $response = new ResponseCore(array(), "", 200);
        $result = new ListObjectVersionsResult($response);
        $list = $result->getData();
        $this->assertTrue(true);
    }
    public function testParseInvalidXml()
    {
        $response = new ResponseCore(array(), $this->invalidXml, 200);
        $result = new ListObjectVersionsResult($response);
        $stat = $result->getData();
        $this->assertTrue(true);
    }
}