public void ConstructorTakesData() {
var remoteFile = new Mock<IDocument>();
remoteFile.Setup(m => m.Paths).Returns(new List<string>() { "/RemoteFile" });
remoteFile.Setup(m => m.Id).Returns("RemoteId");
remoteFile.Setup(m => m.ChangeToken).Returns("ChangeToken");
remoteFile.Setup(m => m.LastModificationDate).Returns(LocalFile.Object.LastWriteTimeUtc);
remoteFile.Setup(m => m.VersionSeriesCheckedOutId).Returns("RemotePWCId");
var obj = new FileTransmissionObject(TransmissionType.UPLOAD_NEW_FILE, LocalFile.Object, remoteFile.Object);
Assert.AreEqual(TransmissionType.UPLOAD_NEW_FILE, obj.Type);
Assert.AreEqual(LocalFile.Object.FullName, obj.LocalPath);
Assert.AreEqual(LocalFile.Object.Length, obj.LastContentSize);
Assert.AreEqual(null, obj.LastChecksum);
Assert.AreEqual(null, obj.ChecksumAlgorithmName);
Assert.AreEqual(LocalFile.Object.LastWriteTimeUtc, obj.LastLocalWriteTimeUtc);
Assert.AreEqual("RemoteId", obj.RemoteObjectId);
Assert.AreEqual("ChangeToken", obj.LastChangeToken);
Assert.AreEqual("RemotePWCId", obj.RemoteObjectPWCId);
Assert.AreEqual(LocalFile.Object.LastWriteTimeUtc, obj.LastRemoteWriteTimeUtc);
var obj2 = new FileTransmissionObject(TransmissionType.UPLOAD_NEW_FILE, LocalFile.Object, remoteFile.Object);
Assert.IsTrue(obj.Equals(obj2));
obj.ChecksumAlgorithmName = "SHA1";
Assert.AreEqual("SHA1", obj.ChecksumAlgorithmName);
obj.LastChecksum = new byte[32];
using (var random = RandomNumberGenerator.Create()) {
random.GetBytes(obj.LastChecksum);
}
Assert.IsFalse(obj.Equals(obj2));
obj2.ChecksumAlgorithmName = "SHA1";
obj2.LastChecksum = new byte[32];
using (var random = RandomNumberGenerator.Create()) {
random.GetBytes(obj.LastChecksum);
}
Assert.IsFalse(obj.Equals(obj2));
Buffer.BlockCopy(obj2.LastChecksum, 0, obj.LastChecksum, 0, 32);
Assert.IsTrue(obj.Equals(obj2));
}