| removeDescriptorListener(Describable.Listener) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getBestApiRoute(Context, Object) |   | 90% |   | 75% | 2 | 5 | 1 | 10 | 0 | 1 |
| buildApi(ApiProducer) |  | 100% |  | 100% | 0 | 5 | 0 | 12 | 0 | 1 |
| handleApiRequest(Context, Object) |  | 100% |  | 100% | 0 | 4 | 0 | 11 | 0 | 1 |
| removeRoute(RouteMatcher[]) |  | 100% |  | 100% | 0 | 4 | 0 | 9 | 0 | 1 |
| addAllRoutes(AbstractRouter) |  | 100% |   | 66% | 2 | 4 | 0 | 9 | 0 | 1 |
| getBestRouteMatch(Context, Object) |  | 100% |  | 100% | 0 | 4 | 0 | 8 | 0 | 1 |
| AbstractRouter(AbstractRouter) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| getBestRoute(Context, Object) |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| updateApiDescriptor(Object, Object) |  | 100% |  | 100% | 0 | 5 | 0 | 7 | 0 | 1 |
| AbstractRouter() |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| notifyDescriptorChange() |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| notifyListeners() |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| setDefaultRoute(Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| api(ApiProducer) |  | 100% |   | 50% | 1 | 2 | 0 | 4 | 0 | 1 |
| updateApiDescriptorAndNotify(Object, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| addRoute(RouteMatcher, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| removeAllRoutes() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| addDescriptorListener(Describable.Listener) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getRoutes() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDefaultRoute() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |