blob: 6e866eafd75c6f5103b70e3290a12802a1baa57a [file] [log] [blame]
// Copyright 2008 Google Inc.
//
// 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.codereview.manager.unpack;
import com.google.codereview.internal.UploadPatchsetFile.UploadPatchsetFileRequest.StatusType;
import junit.framework.TestCase;
import org.spearce.jgit.lib.ObjectId;
import java.io.UnsupportedEncodingException;
public class FileDiffTest extends TestCase {
public void testConstructor() {
final FileDiff fd = new FileDiff();
assertNull(fd.getBaseId());
assertNull(fd.getFilename());
assertSame(StatusType.MODIFY, fd.getStatus());
assertEquals("", fd.getPatch());
}
public void testBaseId() {
final ObjectId id1 =
ObjectId.fromString("fc5ac44497e0548c32506b9c584248fc49bb9f97");
final ObjectId id2 =
ObjectId.fromString("8abf2492d8c5228192a3cba5528e47b3a4bb87e0");
final FileDiff fd = new FileDiff();
fd.setBaseId(id1);
assertSame(id1, fd.getBaseId());
fd.setBaseId(id2);
assertSame(id2, fd.getBaseId());
}
public void testFilename() {
final FileDiff fd = new FileDiff();
final String name1 = "foo";
final String name2 = "foo/bar/baz";
fd.setFilename(name1);
assertSame(name1, fd.getFilename());
fd.setFilename(name2);
assertSame(name2, fd.getFilename());
}
public void testStatus() {
final FileDiff fd = new FileDiff();
fd.setStatus(StatusType.ADD);
assertSame(StatusType.ADD, fd.getStatus());
fd.setStatus(StatusType.MODIFY);
assertSame(StatusType.MODIFY, fd.getStatus());
fd.setStatus(StatusType.DELETE);
assertSame(StatusType.DELETE, fd.getStatus());
}
public void testPatchBody() {
final FileDiff fd = new FileDiff();
final String n1 = "diff --git a/foo b/foo";
final String n2 = "--- a/foo";
final String n3 = "+++ b/foo";
final String n4 = "@@ -20,7 + 20,7 @@";
fd.appendLine(toBytes(n1));
fd.appendLine(toBytes(n2));
fd.appendLine(toBytes(n3));
fd.appendLine(toBytes(n4));
assertEquals(n1 + "\n" + n2 + "\n" + n3 + "\n" + n4 + "\n", fd.getPatch());
}
private static byte[] toBytes(final String s) {
final String enc = "UTF-8";
try {
return s.getBytes(enc);
} catch (UnsupportedEncodingException uee) {
throw new RuntimeException("No " + enc + " support?", uee);
}
}
}