예제 #1
0
        private static LocalEngine MakeLocalEngine(IUpdateFinder finder, ILocalUpdater updater)
        {
            var reader = Substitute.For <INuGetSourcesReader>();

            finder.FindPackageUpdateSets(
                Arg.Any <IFolder>(), Arg.Any <NuGetSources>(),
                Arg.Any <VersionChange>(),
                Arg.Any <UsePrerelease>())
            .Returns(new List <PackageUpdateSet>());

            var sorter = Substitute.For <IPackageUpdateSetSort>();

            sorter.Sort(Arg.Any <IReadOnlyCollection <PackageUpdateSet> >())
            .Returns(x => x.ArgAt <IReadOnlyCollection <PackageUpdateSet> >(0));

            var logger = Substitute.For <INuKeeperLogger>();

            var nugetLogger = Substitute.For <NuGet.Common.ILogger>();

            var reporter = Substitute.For <IReporter>();

            var engine = new LocalEngine(reader, finder, sorter, updater,
                                         reporter, logger, nugetLogger);

            Assert.That(engine, Is.Not.Null);
            return(engine);
        }
예제 #2
0
 public UpdateCommand(LocalEngine engine, IConfigureLogLevel logger)
     : base(logger)
 {
     _engine = engine;
 }
예제 #3
0
        public void AssertFindEqual <T>(string tablename) where T : new()
        {
            var meta = GetMetaData(tablename);
            List <Dictionary <object, int> > list = LJC.FrameWork.Comm.LocalCacheManager <List <Dictionary <object, int> > > .Find("asfasfaefaes", () =>
            {
                List <Dictionary <object, int> > list1 = new System.Collections.Generic.List <Dictionary <object, int> >();

                List <T> listt = new System.Collections.Generic.List <T>();
                foreach (var item in LocalEngine.Find <T>(tablename, (p) => true))
                {
                    listt.Add(item);
                }

                foreach (var idx in meta.IndexInfos)
                {
                    Dictionary <object, int> keyscount = new Dictionary <object, int>();
                    foreach (var item in listt)
                    {
                        var idxval = string.Join("_", idx.GetIndexValues(item, meta).Select(p => p.ToString()));
                        if (keyscount.ContainsKey(idxval))
                        {
                            keyscount[idxval] = keyscount[idxval] + 1;
                        }
                        else
                        {
                            keyscount.Add(idxval, 1);
                        }
                    }
                    list1.Add(keyscount);
                }

                return(list1);
            }, 36000);

            Console.WriteLine("分析完成");

            int      i   = 0;
            int      cnt = 0;
            DateTime now = DateTime.Now;

            //var thekey = "新疆城建";
            foreach (var dic in list)
            {
                foreach (var kv in dic)
                {
                    cnt++;

                    //if (!kv.Key.Equals(thekey))
                    //{
                    //    continue;
                    //}

                    ProcessTraceUtil.StartTrace();

                    var count = FindIndex(tablename, meta, meta.IndexInfos[i], new object[] { kv.Key }).Count();
                    if (count != kv.Value)
                    {
                        //Console.WriteLine("查找不相等:" + kv.Key + ",查找到的" + count + "!=统计的" + kv.Value);
                        LogManager.LogHelper.Instance.Error("[" + meta.IndexInfos[i].IndexName + "]查找不相等:" + kv.Key + ",查找到的" + count + "!=统计的" + kv.Value);
                    }

                    //Console.WriteLine(ProcessTraceUtil.PrintTrace());
                    if (cnt % 10000 == 0)
                    {
                        Console.WriteLine("10000条用时:" + (DateTime.Now.Subtract(now)).TotalMilliseconds + "ms");
                        now = DateTime.Now;
                    }
                }
                i++;
            }
        }
예제 #4
0
 public InspectCommand(LocalEngine engine, IConfigureLogLevel logger) :
     base(logger)
 {
     _engine = engine;
 }