Skip to content

Commit

Permalink
[FLINK-30093] Add test cases to convert from flink internal primitive…
Browse files Browse the repository at this point in the history
… data to proto timestamp data.
  • Loading branch information
laughingman7743 committed Jan 8, 2023
1 parent b40e9f2 commit 6d28b33
Show file tree
Hide file tree
Showing 4 changed files with 179 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* 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.formats.protobuf;

import org.apache.flink.formats.protobuf.testproto.TimestampTestMulti;
import org.apache.flink.table.data.GenericRowData;
import org.apache.flink.table.data.RowData;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

/**
* Test conversion of flink internal primitive data to proto timestamp data with multiple_files
* options.
*/
public class TimestampMultiRowToProtoTest {

@Test
public void testSimple() throws Exception {
RowData row = GenericRowData.of(GenericRowData.of(1672498800L, 123));

byte[] bytes = ProtobufTestHelper.rowToPbBytes(row, TimestampTestMulti.class);
TimestampTestMulti timestampTestMulti = TimestampTestMulti.parseFrom(bytes);
assertEquals(1672498800, timestampTestMulti.getTs().getSeconds());
assertEquals(123, timestampTestMulti.getTs().getNanos());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* 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.formats.protobuf;

import org.apache.flink.formats.protobuf.testproto.TestTimestampNomulti;
import org.apache.flink.table.data.GenericRowData;
import org.apache.flink.table.data.RowData;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

/** Test conversion of flink internal primitive data to proto timestamp data. */
public class TimestampNoMultiRowToProtoTest {

@Test
public void testSimple() throws Exception {
RowData row = GenericRowData.of(GenericRowData.of(1672498800L, 123));

byte[] bytes =
ProtobufTestHelper.rowToPbBytes(
row, TestTimestampNomulti.TimestampTestNoMulti.class);
TestTimestampNomulti.TimestampTestNoMulti timestampTestNoMulti =
TestTimestampNomulti.TimestampTestNoMulti.parseFrom(bytes);
assertEquals(1672498800, timestampTestNoMulti.getTs().getSeconds());
assertEquals(123, timestampTestNoMulti.getTs().getNanos());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* 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.formats.protobuf;

import org.apache.flink.formats.protobuf.testproto.TimestampTestOuterMulti;
import org.apache.flink.table.data.GenericRowData;
import org.apache.flink.table.data.RowData;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

/**
* Test conversion of flink internal primitive data to proto timestamp data with multiple_files and
* outer_classname options.
*/
public class TimestampOuterMultiRowToProtoTest {

@Test
public void testSimple() throws Exception {
RowData row = GenericRowData.of(GenericRowData.of(1672498800L, 123));

byte[] bytes = ProtobufTestHelper.rowToPbBytes(row, TimestampTestOuterMulti.class);
TimestampTestOuterMulti timestampTestOuterMulti = TimestampTestOuterMulti.parseFrom(bytes);
assertEquals(1672498800, timestampTestOuterMulti.getTs().getSeconds());
assertEquals(123, timestampTestOuterMulti.getTs().getNanos());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
* 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.formats.protobuf;

import org.apache.flink.formats.protobuf.testproto.TimestampTestOuterNomultiProto;
import org.apache.flink.table.data.GenericRowData;
import org.apache.flink.table.data.RowData;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

/**
* Test conversion of flink internal primitive data to proto timestamp data with outer_classname
* options.
*/
public class TimestampOuterNoMultiRowToProtoTest {

@Test
public void testSimple() throws Exception {
RowData row = GenericRowData.of(GenericRowData.of(1672498800L, 123));

byte[] bytes =
ProtobufTestHelper.rowToPbBytes(
row, TimestampTestOuterNomultiProto.TimestampTestOuterNoMulti.class);
TimestampTestOuterNomultiProto.TimestampTestOuterNoMulti timestampTestOuterNoMulti =
TimestampTestOuterNomultiProto.TimestampTestOuterNoMulti.parseFrom(bytes);
assertEquals(1672498800, timestampTestOuterNoMulti.getTs().getSeconds());
assertEquals(123, timestampTestOuterNoMulti.getTs().getNanos());
}
}

0 comments on commit 6d28b33

Please sign in to comment.