Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2009 The Guava Authors
   *
   * 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.google.common.testing;
 
 
Tests for SerializableTester.

Author(s):
Nick Kralevich
 
 public class SerializableTesterTest extends TestCase {
   public void testStringAssertions() {
     String original = "hello world";
     String copy = SerializableTester.reserializeAndAssert(original);
     assertEquals(originalcopy);
     assertNotSame(originalcopy);
   }
 
         new ClassWhichDoesNotImplementEquals();
     boolean errorNotThrown = false;
     try {
       SerializableTester.reserializeAndAssert(orig);
       errorNotThrown = true;
     } catch (AssertionFailedError error) {
       // expected
       assertContains("must be Object#equals to"error.getMessage());
     }
     assertFalse(errorNotThrown);
   }
 
     boolean errorNotThrown = false;
     try {
       SerializableTester.reserializeAndAssert(orig);
       errorNotThrown = true;
     } catch (AssertionFailedError error) {
       // expected
       assertContains("must be equal to the Object#hashCode"error.getMessage());
     }
     assertFalse(errorNotThrown);
   }
 
         new ObjectWhichIsEqualButChangesClass();
     boolean errorNotThrown = false;
     try {
       SerializableTester.reserializeAndAssert(orig);
       errorNotThrown = true;
     } catch (AssertionFailedError error) {
       // expected
       assertContains("expected:<class "error.getMessage());
     }
     assertFalse(errorNotThrown);
   }
 
   private static class ClassWhichDoesNotImplementEquals
       implements Serializable {
     private static final long serialVersionUID = 1L;
   }
 
       implements Serializable {
     private static final long serialVersionUID = 2L;
 
     @Override
     public boolean equals(Object other) {
       return (other instanceof ClassWhichIsAlwaysEqualButHasDifferentHashcodes);
     }
   }
 
   private static class ObjectWhichIsEqualButChangesClass
       implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @Override
     public boolean equals(Object other) {
      return (other instanceof ObjectWhichIsEqualButChangesClass
          || other instanceof OtherForm);
    }
    @Override
    public int hashCode() {
      return 1;
    }
    private Object writeReplace() {
      return new OtherForm();
    }
    private static class OtherForm implements Serializable {
      @Override
      public boolean equals(Object other) {
        return (other instanceof ObjectWhichIsEqualButChangesClass
            || other instanceof OtherForm);
      }
      @Override
      public int hashCode() {
        return 1;
      }
    }
  }
  private static void assertContains(String expectedSubstringString actual) {
    // TODO(kevinb): use a Truth assertion here
    if (!actual.contains(expectedSubstring)) {
      fail("expected <" + actual + "> to contain <" + expectedSubstring + ">");
    }
  }
New to GrepCode? Check out our FAQ X