Использовать в тесте провайдер тестовых данных в том виде, как это сделано в ProvideRetryableStatuses, то есть, извлекая данные из тестируемого класса - плохая практика (и не зря в самом начале метод retryableStatuses() был у вас объявлен как private).
Потому что, если кто-то изменит список (не важно по каким причинам и каким способом), который этот метод возвращает, тем самым нарушив контракт работы класса, то тест это никак не отследит.
В тесте лучше явно прописывать те выходные данные, которые ожидаются от тестируемой функциональности, а не путем запроса этих данных у самой функциональности. Да, это выглядит не так лаконично и изящно, но для этого тесты и нужны.
А иначе снова тестируется, что сервис возвращает то, что "должен вернуть" (заданное в самом сервисе).
вообще надо убрать, и прогонять сенды для всех возможных HTTP статусов и проверять, что только для шестерых "избранных" будут ретраи, а для остальных - ретраев быть не должно.
А иначе тестируется, что метод возвращает то, что "должен вернуть" (замоканное в тесте же поведение).
Писал выше: samsung c7000 тянет все по воздуху без проблем по ДЛНА с ноута без транскодирования.
Качаешь торрент в папку, на папку натравливаешь ДЛНА сервер, цепляешься, выбираешь, смотришь.
Так же смотрю IPTV в HD от местного провайдера напрямую с вай-фай роутера (бес посредников).
Есть один момент: скорость сети. Я специально настраивал вай-фай сеть: купил 300 Мб роутер с тремя антенами для хорошего сигнала, адаптеыр для телека и ноута (внешний) с поддержкой 300 Мбит.
На очереди следующий трюк: торренты качаются на диск, подключенный к роутеру, затем комп можно выключать. Самсы этой серии (и некоторые другие) хакаются так, что позволяют подмаунтить внешние samba, NFS ресурсы. Маунтишь диск на роутере, смотришь.
самс с7000 играет все (пробовал BD-рипы до 20 Гб, больше не было) без транскодирования по DLNA по вафле
единственный минус DLNA — не всегда хорошо работает перемотка, но, возможно, это зависит еще и от сервера (у меня Home Media Center)
я даже настроил HMC так, что он SopCast на телек транслирует, можно нахаляву смотреть Лигу Чемпионов с НТВ+ на большом экране в приличном качестве (поток 1.5 мбит)
И еще один момент.
Использовать в тесте провайдер тестовых данных в том виде, как это сделано в ProvideRetryableStatuses, то есть, извлекая данные из тестируемого класса - плохая практика (и не зря в самом начале метод retryableStatuses() был у вас объявлен как private).
Потому что, если кто-то изменит список (не важно по каким причинам и каким способом), который этот метод возвращает, тем самым нарушив контракт работы класса, то тест это никак не отследит.
В тесте лучше явно прописывать те выходные данные, которые ожидаются от тестируемой функциональности, а не путем запроса этих данных у самой функциональности. Да, это выглядит не так лаконично и изящно, но для этого тесты и нужны.
А иначе снова тестируется, что сервис возвращает то, что "должен вернуть" (заданное в самом сервисе).
Тогда зачем там вообще статусы этому тесту, если ни на что не влияют?
Если уж делать это тест правильно, то блок
doThrow(RetryableException.class)
.when(CheckRetry5xxStatuses).retry(any(Response.class), anyString());
вообще надо убрать, и прогонять сенды для всех возможных HTTP статусов и проверять, что только для шестерых "избранных" будут ретраи, а для остальных - ретраев быть не должно.
А иначе тестируется, что метод возвращает то, что "должен вернуть" (замоканное в тесте же поведение).
В тесте shouldThrownRetryException, если на вход передать параметр успешного статуса, например, 200, то тест завершится успешно, что неправильно.
В многопоточной среде это утверждение, строго говоря, неверно.
NAS Synology < — LAN1Gb --> TP-Link WR1043ND < — WiFi 300 Mb --> TRENDnet TEW-664UB < — USB --> Samsung UE46C7000
Качаешь торрент в папку, на папку натравливаешь ДЛНА сервер, цепляешься, выбираешь, смотришь.
Так же смотрю IPTV в HD от местного провайдера напрямую с вай-фай роутера (бес посредников).
Есть один момент: скорость сети. Я специально настраивал вай-фай сеть: купил 300 Мб роутер с тремя антенами для хорошего сигнала, адаптеыр для телека и ноута (внешний) с поддержкой 300 Мбит.
На очереди следующий трюк: торренты качаются на диск, подключенный к роутеру, затем комп можно выключать. Самсы этой серии (и некоторые другие) хакаются так, что позволяют подмаунтить внешние samba, NFS ресурсы. Маунтишь диск на роутере, смотришь.
единственный минус DLNA — не всегда хорошо работает перемотка, но, возможно, это зависит еще и от сервера (у меня Home Media Center)
я даже настроил HMC так, что он SopCast на телек транслирует, можно нахаляву смотреть Лигу Чемпионов с НТВ+ на большом экране в приличном качестве (поток 1.5 мбит)