Home / Function/ testResponseFeedbackStream() — netty Function Reference

testResponseFeedbackStream() — netty Function Reference

Architecture documentation for the testResponseFeedbackStream() function in DnsNameResolverTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  878178a7_6fb3_99bf_1005_0c4068ff6534["testResponseFeedbackStream()"]
  b6215f36_0afe_a284_a3fd_3999e90a8e97["DnsNameResolverTest"]
  878178a7_6fb3_99bf_1005_0c4068ff6534 -->|defined in| b6215f36_0afe_a284_a3fd_3999e90a8e97
  f68a278a_d1e5_7598_a2d3_c261c81029bc["get()"]
  878178a7_6fb3_99bf_1005_0c4068ff6534 -->|calls| f68a278a_d1e5_7598_a2d3_c261c81029bc
  6379f5e9_9105_8ed2_288e_b124a4c8863f["InetSocketAddress()"]
  878178a7_6fb3_99bf_1005_0c4068ff6534 -->|calls| 6379f5e9_9105_8ed2_288e_b124a4c8863f
  df4510f5_88a8_20fd_2366_a4c543cdf3b8["resolve()"]
  878178a7_6fb3_99bf_1005_0c4068ff6534 -->|calls| df4510f5_88a8_20fd_2366_a4c543cdf3b8
  style 878178a7_6fb3_99bf_1005_0c4068ff6534 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java lines 4246–4324

    @ParameterizedTest
    @EnumSource(DnsNameResolverChannelStrategy.class)
    public void testResponseFeedbackStream(DnsNameResolverChannelStrategy strategy) {
        final AtomicBoolean successCalled = new AtomicBoolean();
        final AtomicBoolean failureCalled = new AtomicBoolean();
        final AtomicBoolean returnSuccess = new AtomicBoolean(false);
        final DnsNameResolver resolver = newResolver(strategy, true, new DnsServerAddressStreamProvider() {
            @Override
            public DnsServerAddressStream nameServerAddressStream(String hostname) {
                return new DnsServerResponseFeedbackAddressStream() {
                    @Override
                    public void feedbackSuccess(InetSocketAddress address, long queryResponseTimeNanos) {
                        assertThat(queryResponseTimeNanos).isGreaterThanOrEqualTo(0L);
                        successCalled.set(true);
                    }

                    @Override
                    public void feedbackFailure(InetSocketAddress address,
                                                Throwable failureCause,
                                                long queryResponseTimeNanos) {
                        assertThat(queryResponseTimeNanos).isGreaterThanOrEqualTo(0L);
                        assertNotNull(failureCause);
                        failureCalled.set(true);
                    }

                    @Override
                    public InetSocketAddress next() {
                        if (returnSuccess.get()) {
                            return dnsServer.localAddress();
                        }
                        try {
                            return new InetSocketAddress(InetAddress.getByAddress("foo.com",
                                    new byte[] {(byte) 169, (byte) 254, 12, 34 }), 53);
                        } catch (UnknownHostException e) {
                            throw new Error(e);
                        }
                    }

                    @Override
                    public int size() {
                        return 1;
                    }

                    @Override
                    public DnsServerAddressStream duplicate() {
                        return this;
                    }
                };
            }
        }).build();
        try {
            // setup call to be successful and verify
            returnSuccess.set(true);
            resolver.resolve("google.com").syncUninterruptibly().getNow();
            assertTrue(successCalled.get());
            assertFalse(failureCalled.get());

            // reset state for next query
            successCalled.set(false);
            failureCalled.set(false);

            // setup call to fail and verify
            returnSuccess.set(false);
            try {
                resolver.resolve("yahoo.com").syncUninterruptibly().getNow();
                fail();
            } catch (Exception e) {
                // expected
                assertInstanceOf(UnknownHostException.class, e);
            } finally {
                assertFalse(successCalled.get());
                assertTrue(failureCalled.get());
            }
        } finally {
            if (resolver != null) {
                resolver.close();
            }
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does testResponseFeedbackStream() do?
testResponseFeedbackStream() is a function in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java.
Where is testResponseFeedbackStream() defined?
testResponseFeedbackStream() is defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java at line 4246.
What does testResponseFeedbackStream() call?
testResponseFeedbackStream() calls 3 function(s): InetSocketAddress, get, resolve.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free