public void TestDeleteWhenNoPackages() { var jsonContent = GetJsonContent(); var locker = new Locker(io, jsonFile.Object, installationManager.Object, jsonContent); Assert.IsFalse(locker.BeginSetLockData(Array.Empty <IPackage>()).Save()); jsonFile.Verify((o) => o.Delete(), Times.Once); }
public void TestLockBadPackages() { var locker = new Locker(io, jsonFile.Object, installationManager.Object, GetJsonContent()); var packageFooMock = new Mock <IPackage>(); packageFooMock.Setup((o) => o.GetNamePretty()).Returns("foo"); locker.BeginSetLockData(new[] { packageFooMock.Object }).Save(); }
public void BeginSetLockDataWithMinimal() { var jsonContent = GetJsonContent(); var locker = new Locker(io, jsonFile.Object, installationManager.Object, jsonContent); var packageFooMock = new Mock <IPackage>(); var packageBarMock = new Mock <IPackage>(); packageFooMock.Setup((o) => o.GetNamePretty()).Returns("foo"); packageFooMock.Setup((o) => o.GetVersionPretty()).Returns("1.0.0-beta"); packageFooMock.Setup((o) => o.GetVersion()).Returns("1.0.0.0-beta"); packageBarMock.Setup((o) => o.GetNamePretty()).Returns("bar"); packageBarMock.Setup((o) => o.GetVersionPretty()).Returns("0.2.0"); packageBarMock.Setup((o) => o.GetVersion()).Returns("0.2.0.0"); var contentHash = Security.Md5(jsonContent.Trim()); jsonFile.Setup((o) => o.Write(It.IsAny <object>())).Callback <object>((data) => { data = JObject.FromObject(data); StringAssert.Contains(data.ToString(), contentHash); var expected = @"{ '_readme': 'This file is generated automatically', 'content-hash': '59eedf9c4842dd75d51e100343398439', 'packages': [ { 'name': 'bar', 'version': '0.2.0' }, { 'name': 'foo', 'version': '1.0.0-beta' } ], 'packages-dev': [], 'aliases': [], 'minimum-stability': 'stable', 'stability-flags': {}, 'prefer-stable': true, 'prefer-lowest': false, 'platform': {} }"; Assert.AreEqual(expected.Replace("'", "\"", StringComparison.Ordinal), data.ToString()); }); var ret = locker.BeginSetLockData(new[] { packageFooMock.Object, packageBarMock.Object }) .Save(); Assert.AreEqual(true, ret); jsonFile.Verify((o) => o.Write(It.IsAny <object>()), Times.Once); }