/* * Copyright 2013 Goldman Sachs. * * Licensed 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 com.gs.collections.impl.block.factory.primitive; import com.gs.collections.api.block.predicate.primitive.BooleanPredicate; import com.gs.collections.impl.test.Verify; import org.junit.Test; public class BooleanPredicatesSerializationTest { private static final BooleanPredicate PREDICATE = new BooleanPredicate() { private static final long serialVersionUID = 1L; public boolean accept(boolean value) { return false; } }; @Test public void alwaysFalse() { Verify.assertSerializedForm( 1L, "rO0ABXNyAF1jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRBbHdheXNGYWxzZUJvb2xlYW5QcmVkaWNhdGUAAAAAAAAAAQIAAHhw\n", BooleanPredicates.alwaysFalse()); } @Test public void alwaysTrue() { Verify.assertSerializedForm( 1L, "rO0ABXNyAFxjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRBbHdheXNUcnVlQm9vbGVhblByZWRpY2F0ZQAAAAAAAAABAgAAeHA=\n", BooleanPredicates.alwaysTrue()); } @Test public void isTrue() { Verify.assertSerializedForm( 1L, "rO0ABXNyAFhjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRJc1RydWVCb29sZWFuUHJlZGljYXRlAAAAAAAAAAECAAB4cA==", BooleanPredicates.isTrue()); } @Test public void isFalse() { Verify.assertSerializedForm( 1L, "rO0ABXNyAFljb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRJc0ZhbHNlQm9vbGVhblByZWRpY2F0ZQAAAAAAAAABAgAAeHA=", BooleanPredicates.isFalse()); } @Test public void not() { Verify.assertSerializedForm( 1L, "rO0ABXNyAFljb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRJc0ZhbHNlQm9vbGVhblByZWRpY2F0ZQAAAAAAAAABAgAAeHA=", BooleanPredicates.not(BooleanPredicates.isTrue())); } @Test public void and() { Verify.assertSerializedForm( 1L, "rO0ABXNyAFBjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRGYWxzZVByZWRpY2F0ZQAAAAAAAAABAgAAeHA=", BooleanPredicates.and(BooleanPredicates.isTrue(), BooleanPredicates.isFalse())); } @Test public void or() { Verify.assertSerializedForm( 1L, "rO0ABXNyAE9jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRUcnVlUHJlZGljYXRlAAAAAAAAAAECAAB4cA==", BooleanPredicates.or(BooleanPredicates.isTrue(), BooleanPredicates.isFalse())); } @Test public void not_custom() { Verify.assertSerializedForm( 1L, "rO0ABXNyAFVjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyROb3RCb29sZWFuUHJlZGljYXRlAAAAAAAAAAECAAFMAAZuZWdhdGV0\n" + "AENMY29tL2dzL2NvbGxlY3Rpb25zL2FwaS9ibG9jay9wcmVkaWNhdGUvcHJpbWl0aXZlL0Jvb2xl\n" + "YW5QcmVkaWNhdGU7eHBzcgBUY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5w\n" + "cmltaXRpdmUuQm9vbGVhblByZWRpY2F0ZXNTZXJpYWxpemF0aW9uVGVzdCQxAAAAAAAAAAECAAB4\n" + "cA==", BooleanPredicates.not(PREDICATE)); } @Test public void and_custom() { Verify.assertSerializedForm( 1L, "rO0ABXNyAFVjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRBbmRCb29sZWFuUHJlZGljYXRlAAAAAAAAAAECAAJMAANvbmV0AENM\n" + "Y29tL2dzL2NvbGxlY3Rpb25zL2FwaS9ibG9jay9wcmVkaWNhdGUvcHJpbWl0aXZlL0Jvb2xlYW5Q\n" + "cmVkaWNhdGU7TAADdHdvcQB+AAF4cHNyAFRjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5m\n" + "YWN0b3J5LnByaW1pdGl2ZS5Cb29sZWFuUHJlZGljYXRlc1NlcmlhbGl6YXRpb25UZXN0JDEAAAAA\n" + "AAAAAQIAAHhwcQB+AAQ=", BooleanPredicates.and(PREDICATE, PREDICATE)); } @Test public void or_custom() { Verify.assertSerializedForm( 1L, "rO0ABXNyAFRjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LnByaW1pdGl2ZS5C\n" + "b29sZWFuUHJlZGljYXRlcyRPckJvb2xlYW5QcmVkaWNhdGUAAAAAAAAAAQIAAkwAA29uZXQAQ0xj\n" + "b20vZ3MvY29sbGVjdGlvbnMvYXBpL2Jsb2NrL3ByZWRpY2F0ZS9wcmltaXRpdmUvQm9vbGVhblBy\n" + "ZWRpY2F0ZTtMAAN0d29xAH4AAXhwc3IAVGNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZh\n" + "Y3RvcnkucHJpbWl0aXZlLkJvb2xlYW5QcmVkaWNhdGVzU2VyaWFsaXphdGlvblRlc3QkMQAAAAAA\n" + "AAABAgAAeHBxAH4ABA==", BooleanPredicates.or(PREDICATE, PREDICATE)); } }