/**
 * 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.
 *
 * Copyright 2012-2014 the original author or authors.
 */
package org.assertj.db.api;

import org.assertj.db.common.AbstractTest;
import org.assertj.db.type.Changes;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.db.api.Assertions.assertThat;
import static org.junit.Assert.fail;

/**
 * Test on the methods which verifies if a value is null or not.
 *
 * @author Régis Pouiller
 *
 */
public class ChangeValueAssert_IsNull_Test extends AbstractTest {

  /**
   * This method tests the verification of the null value is correct.
   */
  @Test
  public void test_if_a_value_is_null() {
    Changes changes = new Changes(source).setStartPointNow();
    update("insert into test2 values (null, null, null, null, null, null, null, null, null, null, null, null, null, null, null)");
    changes.setEndPointNow();

    assertThat(changes).change().rowAtEndPoint()
            .value("var11").isNull();
  }

  /**
   * This method should fail because the value is not null.
   */
  @Test
  public void should_fail_because_value_is_not_null() {
    try {
      Changes changes = new Changes(source).setStartPointNow();
      update("insert into test2 values (1, true, 2, 3, 4, 5.6, 7.8, PARSEDATETIME('09:46:30', 'HH:mm:ss'),\n"
             + "    PARSEDATETIME('24/05/2014', 'dd/MM/yyyy'), PARSEDATETIME('24/05/2014 09:46:30', 'dd/MM/yyyy HH:mm:ss'),\n"
             + "    FILE_READ('classpath:h2-logo-2.png'), 'text', 5, 7, null)");
      changes.setEndPointNow();

      assertThat(changes).change().rowAtEndPoint()
                .value("var10").isNull();

        fail("An exception must be raised");
    }
    catch(AssertionError e) {
      assertThat(e.getLocalizedMessage()).isEqualTo("[Value at index 9 of Row at end point of Change at index 0 of Changes on tables of 'sa/jdbc:h2:mem:test' source] expected:<null> but was:<2014-05-24T09:46:30>");
    }
  }

  /**
   * This method tests the verification of the not null value is correct.
   */
  @Test
  public void test_if_a_value_is_not_null() {
    Changes changes = new Changes(source).setStartPointNow();
    update("insert into test2 values (1, true, 2, 3, 4, 5.6, 7.8, PARSEDATETIME('09:46:30', 'HH:mm:ss'),\n"
           + "    PARSEDATETIME('24/05/2014', 'dd/MM/yyyy'), PARSEDATETIME('24/05/2014 09:46:30', 'dd/MM/yyyy HH:mm:ss'),\n"
           + "    FILE_READ('classpath:h2-logo-2.png'), 'text', 5, 7, null)");
    changes.setEndPointNow();

    assertThat(changes).change().rowAtEndPoint()
            .value("var10").isNotNull();
  }

  /**
   * This method should fail because the value is null.
   */
  @Test
  public void should_fail_because_value_is_null() {
    try {
      Changes changes = new Changes(source).setStartPointNow();
      update("insert into test2 values (null, null, null, null, null, null, null, null, null, null, null, null, null, null, null)");
      changes.setEndPointNow();

      assertThat(changes).change().rowAtEndPoint()
              .value("var11").isNotNull();

      fail("An exception must be raised");
    } catch (AssertionError e) {
      assertThat(e.getLocalizedMessage()).isEqualTo("[Value at index 10 of Row at end point of Change at index 0 of Changes on tables of 'sa/jdbc:h2:mem:test' source] \n" +
                                                                                    "Expecting actual not to be null");
    }
  }
}

@@ -673,16 +673,57 @@
 ctTest;%0A
+import org.assertj.db.common.NeedReload;%0A
 import o
@@ -750,16 +750,16 @@
 hanges;%0A
-
 import o
@@ -1180,32 +1180,46 @@
 .%0A   */%0A  @Test%0A
+  @NeedReload%0A
   public void te
@@ -1632,32 +1632,46 @@
 .%0A   */%0A  @Test%0A
+  @NeedReload%0A
   public void sh
@@ -2622,32 +2622,46 @@
 .%0A   */%0A  @Test%0A
+  @NeedReload%0A
   public void te
@@ -3258,24 +3258,24 @@
 .%0A   */%0A
-
   @Test%0A
   public
@@ -3266,16 +3266,30 @@
   @Test%0A
+  @NeedReload%0A
   public

Fix the tests