Skip to content

Commit

Permalink
Implemented IntFromBoolean UDF
Browse files Browse the repository at this point in the history
  • Loading branch information
rgibaiev committed Jul 14, 2023
1 parent 41c7a59 commit eed1ce5
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright 2023 Confluent Inc.
*
* Licensed under the Confluent Community License; you may not use this file
* except in compliance with the License. You may obtain a copy of the License at
*
* http://www.confluent.io/confluent-community-license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/

package io.confluent.ksql.function.udf.conversions;

import io.confluent.ksql.function.FunctionCategory;
import io.confluent.ksql.function.udf.Udf;
import io.confluent.ksql.function.udf.UdfDescription;
import io.confluent.ksql.function.udf.UdfParameter;

@UdfDescription(
name = "int_from_boolean",
category = FunctionCategory.CONVERSIONS,
description = "Converts a Boolean value to an Integer value"
)
public class IntFromBoolean {

@Udf(description = "Converts a Boolean value to an Integer value")
public Integer intFromBoolean(
@UdfParameter(description = "The Boolean value to convert.")
final Boolean bool
) {
if (bool == null) {
return null;
}
return Boolean.TRUE.equals(bool) ? 1 : 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.confluent.ksql.function.udf.conversions;

import org.junit.Test;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;

public class IntFromBooleanTest {
private final IntFromBoolean udf = new IntFromBoolean();

@Test
public void shouldReturnNullOnNullBoolean() {
assertThat(udf.intFromBoolean(null), is(nullValue()));
}

@Test
public void shouldConvertTrueToInteger() {
assertThat(udf.intFromBoolean(Boolean.TRUE), is(1));
}

@Test
public void shouldConvertFalseToInteger() {
assertThat(udf.intFromBoolean(Boolean.FALSE), is(0));
}

}

0 comments on commit eed1ce5

Please sign in to comment.