[ 
https://issues.apache.org/jira/browse/FLINK-2477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14697195#comment-14697195
 ] 

ASF GitHub Bot commented on FLINK-2477:
---------------------------------------

Github user StephanEwen commented on a diff in the pull request:

    https://github.com/apache/flink/pull/977#discussion_r37086314
  
    --- Diff: 
flink-staging/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/functions/SocketClientSinkTest.java
 ---
    @@ -0,0 +1,132 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package org.apache.flink.streaming.api.functions;
    +
    +import java.io.IOException;
    +import java.net.Socket;
    +
    +import org.apache.flink.configuration.Configuration;
    +import org.apache.flink.streaming.api.functions.sink.SocketClientSink;
    +import org.apache.flink.streaming.util.serialization.SerializationSchema;
    +
    +import org.junit.Assert;
    +import org.junit.Test;
    +
    +import static org.junit.Assert.*;
    +
    +import java.io.BufferedReader;
    +import java.io.InputStreamReader;
    +import java.net.ServerSocket;
    +import java.util.concurrent.atomic.AtomicReference;
    +
    +/**
    + * Tests for the {@link 
org.apache.flink.streaming.api.functions.sink.SocketClientSink}.
    + */
    +public class SocketClientSinkTest{
    +
    +   final AtomicReference<Throwable> error = new 
AtomicReference<Throwable>();
    +   private final String host = "127.0.0.1";
    +   private int port;
    +   private String access;
    +   private String value;
    +   public SocketServer.ServerThread th;
    +
    +   public SocketClientSinkTest() {
    +   }
    +
    +   class SocketServer extends Thread {
    +
    +           private ServerSocket server;
    +           private Socket sk;
    +           private BufferedReader rdr;
    +
    +           private SocketServer() {
    +                   try {
    +                           this.server = new ServerSocket(0);
    +                           port = server.getLocalPort();
    +                   } catch (Exception e) {
    +                           error.set(e);
    +                   }
    +           }
    +
    +           public void run() {
    +                   try {
    +                           sk = server.accept();
    +                           access = "Connected";
    +                           th = new ServerThread(sk);
    +                           th.start();
    +                   } catch (Exception e) {
    +                           error.set(e);
    +                   }
    +           }
    +
    +           class ServerThread extends Thread {
    +                   Socket sk;
    +
    +                   public ServerThread(Socket sk) {
    +                           this.sk = sk;
    +                   }
    +
    +                   public void run() {
    +                           try {
    +                                   rdr = new BufferedReader(new 
InputStreamReader(sk
    +                                                   .getInputStream()));
    +                                   value = rdr.readLine();
    +                           } catch (IOException e) {
    +                                   error.set(e);
    +                           }
    +                   }
    +           }
    +   }
    +
    +   @Test
    +   public void testSocketSink() throws Exception{
    +
    +           SocketServer server = new SocketServer();
    +           server.start();
    +
    +           SerializationSchema<String, byte[]> simpleSchema = new 
SerializationSchema<String, byte[]>() {
    +                   @Override
    +                   public byte[] serialize(String element) {
    +                           return element.getBytes();
    +                   }
    +           };
    +
    +           SocketClientSink<String> simpleSink = new 
SocketClientSink<String>(host, port, simpleSchema);
    +           simpleSink.open(new Configuration());
    +           simpleSink.invoke("testSocketSinkInvoke");
    +           simpleSink.close();
    +           try {
    +                   server.join();
    +                   th.join();
    +           }
    +           catch (Exception e){
    +                   Assert.fail(e.getMessage());
    +           }
    +
    +           if (error.get() != null) {
    +                   Throwable t = error.get();
    +                   t.printStackTrace();
    +                   fail("Error in spawned thread: " + t.getMessage());
    +           }
    +
    +           assertEquals(this.access, "Connected");
    --- End diff --
    
    For correct display in error cases, the order should be 
`assertEquals(expected, actual)`.


> Add test for SocketClientSink
> -----------------------------
>
>                 Key: FLINK-2477
>                 URL: https://issues.apache.org/jira/browse/FLINK-2477
>             Project: Flink
>          Issue Type: Test
>          Components: Streaming
>    Affects Versions: 0.10
>         Environment: win7 32bit;linux
>            Reporter: Huang Wei
>            Priority: Minor
>             Fix For: 0.10
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Add some tests for SocketClientSink.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to