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)); }