### Question:
NullSCM extends SCM { @Override public boolean equals(Object o) { if (this == o) { return true; } return !(o == null || getClass() != o.getClass()); }  SCMRevisionState calcRevisionsFromBuild(AbstractBuild<?, ?> build, Launcher launcher, TaskListener listener); boolean checkout(AbstractBuild<?,?> build, Launcher launcher, FilePath remoteDir, BuildListener listener, File changeLogFile); ChangeLogParser createChangeLogParser(); @Override boolean equals(Object o); @Override int hashCode();  }### Answer:
@Test public void testEquals() { assertEquals(expectedResult, scm1.equals(scm2)); }