I thought I would try to clarify my comments:
You only get a few things out of setting your capability_types
the way you have above, which it is explained in Note 2 of capabilities.
Here is what I see looking at $GLOBALS['wp_post_types']['adoptions']->cap
:
stdClass Object(
[edit_post] => edit_adoption
[read_post] => read_adoption
[delete_post] => delete_adoption
[edit_posts] => edit_adoptions
[edit_others_posts] => edit_others_adoptions
[publish_posts] => publish_adoptions
[read_private_posts] => read_private_adoptions
[create_posts] => edit_adoptions
)
Once I add 'map_meta_cap' => true,
to your post type $args
I get a much more complete object:
stdClass Object(
[edit_post] => edit_adoption
[read_post] => read_adoption
[delete_post] => delete_adoption
[edit_posts] => edit_adoptions
[edit_others_posts] => edit_others_adoptions
[publish_posts] => publish_adoptions
[read_private_posts] => read_private_adoptions
[read] => read
[delete_posts] => delete_adoptions
[delete_private_posts] => delete_private_adoptions
[delete_published_posts] => delete_published_adoptions
[delete_others_posts] => delete_others_adoptions
[edit_private_posts] => edit_private_adoptions
[edit_published_posts] => edit_published_adoptions
[create_posts] => edit_adoptions
)