Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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);
        }