WebService-8tracks

 view release on metacpan or  search on metacpan

t/01_api.t  view on Meta::CPAN

                %config,
            }
        });
}

cmp_deeply $session->play,
    like_a_track_response(
        at_beginning => bool(1),
        track        => superhashof({
            url          => ignore,
            name         => 'You',
            performer    => 'Gold Panda',
            release_name => 'Lucky Shiner',
        }),
    ),
    '$session->play';

cmp_deeply $session->next,
    like_a_track_response(),
    '$session->next';

cmp_deeply $session->skip,
    like_a_track_response(skip_allowed => bool(1)),
    '$session->skip';

cmp_deeply $session->skip,
    like_a_track_response(skip_allowed => bool(0)),
    '$session->skip (2)';

cmp_deeply $session->skip,
    methods(is_success => bool(0), is_client_error => bool(1)) & noclass(superhashof { status => '403 Forbidden' }),
    '$session->skip (3, not allowed)';

cmp_deeply $session->next,
    like_a_track_response(),
    '$session->next (2)';

cmp_deeply $session->next,
    like_a_track_response(),
    '$session->next (3)';

cmp_deeply $session->next,
    like_a_track_response(),
    '$session->next (4)';

cmp_deeply $session->next,
    like_a_track_response(),
    '$session->next (5)';

cmp_deeply $session->next,
    like_a_track_response(at_end => bool(1), track => {}),
    '$session->next (6, end)';

__DATA__

@@ GET http://api.8tracks.com/users/1.json
HTTP/1.1 200 OK
Content-Length: 788
Content-Type: application/json; charset=utf-8

{"notices":null,"user":{"slug":"remi","followed_by_current_user":false,"location":"Noe Valley, San Francisco, US","bio_html":"<p>Frenchman. I co-founded 8tracks with my very first boss from 7 years ago, <a href=\"/dp\">dp</a>.</p>\n\n<p>When I have t...

@@ GET http://api.8tracks.com/users/dp/mixes.json
HTTP/1.1 200 OK
Content-Length: 13401
Content-Type: application/json; charset=utf-8

{"offset":null,"notices":null,"next_page":2,"status":"200 OK","total_entries":41,"logged_in":false,"page":1,"errors":null,"per_page":10,"mix_set_id":123,"mixes":[{"path":"/dp/a-new-mission","slug":"a-new-mission","name":"A new mission","user":{"slug"...

@@ GET http://api.8tracks.com/sets/new.json
HTTP/1.1 200 OK
Content-Length: 91
Content-Type: application/json; charset=utf-8

{"notices":null,"status":"200 OK","logged_in":false,"errors":null,"play_token":"227974697"}

@@ GET http://api.8tracks.com/sets/227974697/play.json?mix_id=163823
HTTP/1.1 200 OK
Content-Length: 349
Content-Type: application/json; charset=utf-8

{"notices":null,"status":"200 OK","logged_in":false,"errors":null,"set":{"at_beginning":true,"at_end":false,"skip_allowed":true,"track":{"performer":"Gold Panda","url":"http://8tracks.s3.amazonaws.com/tf/001/073/801/73327.64k.m4a","year":null,"faved_...

@@ GET http://api.8tracks.com/sets/227974697/next.json?mix_id=163823
HTTP/1.1 200 OK
Content-Length: 356
Content-Type: application/json; charset=utf-8

{"notices":null,"status":"200 OK","logged_in":false,"errors":null,"set":{"at_beginning":false,"at_end":false,"skip_allowed":true,"track":{"performer":"Matthew Dear","url":"http://8tracks.s3.amazonaws.com/tf/001/073/797/26292.64k.m4a","year":null,"fav...

@@ GET http://api.8tracks.com/sets/227974697/skip.json?mix_id=163823
HTTP/1.1 200 OK
Content-Length: 359
Content-Type: application/json; charset=utf-8

{"notices":null,"status":"200 OK","logged_in":false,"errors":null,"set":{"at_beginning":false,"at_end":false,"skip_allowed":true,"track":{"performer":"Superpitcher","url":"http://8tracks.s3.amazonaws.com/tf/001/073/802/45260.64k.m4a","year":null,"fav...

@@ GET http://api.8tracks.com/sets/227974697/skip.json?mix_id=163823 (2)
HTTP/1.1 200 OK
Content-Length: 374
Content-Type: application/json; charset=utf-8

{"notices":null,"status":"200 OK","logged_in":false,"errors":null,"set":{"at_beginning":false,"at_end":false,"skip_allowed":false,"track":{"performer":"Elephant & Castle","url":"http://8tracks.s3.amazonaws.com/tf/001/088/424/29945.64k.m4a","year":201...

@@ GET http://api.8tracks.com/sets/227974697/skip.json?mix_id=163823 (3)
HTTP/1.1 403 Forbidden
Content-Length: 193
Content-Type: application/json; charset=utf-8

{"notices":["Apologies for the inconvenience, but our music license requires us to limit the number of tracks you may skip each hour."],"status":"403 Forbidden","logged_in":false,"errors":null}

@@ GET http://api.8tracks.com/sets/227974697/next.json?mix_id=163823 (2)
HTTP/1.1 200 OK
Content-Length: 355
Content-Type: application/json; charset=utf-8

{"notices":null,"status":"200 OK","logged_in":false,"errors":null,"set":{"at_beginning":false,"at_end":false,"skip_allowed":false,"track":{"performer":"Superpitcher","url":"http://8tracks.s3.amazonaws.com/tf/001/073/799/24044.64k.m4a","year":null,"fa...

@@ GET http://api.8tracks.com/sets/227974697/next.json?mix_id=163823 (3)
HTTP/1.1 200 OK
Content-Length: 360



( run in 0.930 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )