コード例 #1
0
        public void TestTaskManager_WithMoq_WhenAllTasksCalled_ShouldCallLogTasksCount()
        {
            //Arrange
            ICollection <Task> tasks = new List <Task>()
            {
                new Task("jgh"),
                new Task("jghffd"),
                new Task("jghzdvdv"),
                new Task("jfsbsfgh")
            };


            var mockedLogger     = new Mock <ILogger>();
            var mockedIdProvider = new Mock <IIdProvider>();

            var taskManager = new Tasker(mockedLogger.Object, mockedIdProvider.Object);

            taskManager.Tasks = tasks;


            //  mockedLogger.Setup(x => x.Log(It.IsAny<string>()));


            //Act
            taskManager.AllTasks();


            //Assert
            mockedLogger.Verify(x => x.Log(It.IsAny <string>()), Times.Exactly(2));
        }
        private SitecoreEnvironment CreateSitecoreEnvironment(Tasker tasker, string sqlDbPrefix, string uninstallDataPath)
        {
            SitecoreEnvironment sitecoreEnvironment = new SitecoreEnvironment(sqlDbPrefix);

            sitecoreEnvironment.UnInstallDataPath = uninstallDataPath;
            sitecoreEnvironment.Members           = new List <SitecoreEnvironmentMember>();

            foreach (Task powerShellTask in tasker.Tasks)
            {
                InstallParam installParam = powerShellTask.LocalParams.FirstOrDefault(x => x.Name == SiteName);
                if (installParam != null && !string.IsNullOrEmpty(installParam.Value))
                {
                    Hashtable evaluatedLocalParams = tasker.GetEvaluatedLocalParams(powerShellTask.LocalParams, tasker.GlobalParams);
                    if (evaluatedLocalParams != null && evaluatedLocalParams[SiteName] != null)
                    {
                        sitecoreEnvironment.Members.Add(new SitecoreEnvironmentMember(evaluatedLocalParams[SiteName].ToString(),
                                                                                      SitecoreEnvironmentMember.Types.Site.ToString()));
                    }
                }
            }

            sitecoreEnvironment.Members = sitecoreEnvironment.Members.Distinct(new SitecoreEnvironmentMemberComparer()).ToList();

            return(sitecoreEnvironment);
        }
コード例 #3
0
ファイル: TestTaskManager.cs プロジェクト: HD-LB/UnitTesting
        public void TestTaskManager_WitMoq_WhenAllTasksCalled_ShouldCallLogTasksCount() //--> Nuget Moq and Justmock Packeges
        {
            ICollection <Task> tasks = new List <Task>()
            {
                new Task("nesto si"),
                new Task("i drugo")
            };


            // Agange
            var mockedLogger     = new Mock <ILogger>();
            var mockedIdProvider = new Mock <IIdProvider>();
            var taskManager      = new Tasker(mockedLogger.Object, mockedIdProvider.Object); //--> im Mock  => .Object

            taskManager.Tasks = tasks;

            mockedLogger.Setup(x => x.Log(It.IsAny <string>()));

            var task = new Task("");

            // Act
            taskManager.Save(task);

            // Assert
            mockedLogger.Verify(x => x.Log(It.IsAny <string>()), Times.Exactly(taskManager.Tasks.Count));
        }
コード例 #4
0
ファイル: BnetClient.cs プロジェクト: dafzor/bnetlauncher
        /// <summary>
        /// Starts the battle.net client and returns WaitUntilReady result.
        /// </summary>
        /// <returns>The result of the WaitUntilReady call.</returns>
        public override bool Start(bool create_lockfile = true, bool no_task = false)
        {
            // Just launches the client which is required for it to interpret launch commands properly.
            Logger.Information($"Starting '{Id}' client.");

            if (no_task)
            {
                Logger.Information("Starting the client directly.");
                Process.Start(Path.Combine(InstallPath, Exe));
            }
            else
            {
                Logger.Information("Starting the client trough task.");
                if (!Tasker.CreateAndRun(Id, Path.Combine(InstallPath, Exe)))
                {
                    Logger.Warning("Failed to start client trough task.");
                    Process.Start(Path.Combine(InstallPath, Exe));
                }
            }

            if (create_lockfile)
            {
                lockfile.Create();
            }
            // If battle.net client is starting fresh it will use a intermediary Battle.net process to start, we need
            // to make sure we don't get that process id but the actual client's process id. To work around it we wait
            // 2s before trying to get the process id. Also we wait an extra bit so that the child processes start as
            // well (SystemSurvey.exe, Battle.net Helper.exe).
            // TODO: Find a way to do this that doesn't feel like a hack.
            Thread.Sleep(2000);
            return(WaitUntilReady());
        }
コード例 #5
0
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    Project.Dispose();
                    tasker.Dispose();
                    relations.Dispose();
                    computers.Dispose();
                    computerIPs.Dispose();
                    files.Dispose();
                    Ips.Dispose();
                    computerDomains.Dispose();
                    lstLimits.Dispose();
                    domains.Dispose();
                    plugins.Dispose();
                }

                Project         = null;
                tasker          = null;
                computerDomains = null;
                lstLimits       = null;
                domains         = null;
                relations       = null;
                computers       = null;
                files           = null;
                Ips             = null;
                plugins         = null;

                disposedValue = true;
            }
        }
コード例 #6
0
        public void TestTaskManager_WithMoq_WhenAllTasksCalles_ShoudCallLogTasksCount()
        {
            ICollection <Task> tasks = new List <Task>()
            {
                new Task("1"),
                new Task("2"),
                new Task("3"),
            };

            // Arrange
            var mockedLogger     = new Mock <Ilogger>();
            var mockedIdProvider = new Mock <IIdProvider>();

            var taskManager = new Tasker(mockedLogger.Object, mockedIdProvider.Object);

            taskManager.Tasks = tasks;

            // mockedLogger.Setup(x => x.Log(It.IsAny<string>()));

            var task = new Task("");

            // Act
            taskManager.AllTasks();

            //Assert
            mockedLogger.Verify(x => x.Log(It.IsAny <string>()), Times.Exactly(taskManager.Tasks.Count));
        }
コード例 #7
0
        public bool OnMovingNext(WizardArgs wizardArgs)
        {
            var args = (Delete9WizardArgs)wizardArgs;

            args.ScriptsOnly = this.scriptsOnly.IsChecked ?? false;

            args.ScriptRoot = args.Tasker.GlobalParams.FirstOrDefault(p => p.Name == "FilesRoot").Value;

            Tasker tasker = args.Tasker;

            tasker.GlobalParams.FirstOrDefault(p => p.Name == "FilesRoot").Value = args.ScriptRoot;
            InstallParam sqlServer = tasker.GlobalParams.FirstOrDefault(p => p.Name == "SqlServer");

            if (sqlServer != null)
            {
                sqlServer.Value = args.InstanceConnectionString.DataSource;
            }

            InstallParam sqlAdminUser = tasker.GlobalParams.FirstOrDefault(p => p.Name == "SqlAdminUser");

            if (sqlAdminUser != null)
            {
                sqlAdminUser.Value = args.InstanceConnectionString.UserID;
            }

            InstallParam sqlAdminPass = tasker.GlobalParams.FirstOrDefault(p => p.Name == "SqlAdminPassword");

            if (sqlAdminPass != null)
            {
                sqlAdminPass.Value = args.InstanceConnectionString.Password;
            }
            return(true);
        }
コード例 #8
0
        public void InitializeStep(WizardArgs wizardArgs)
        {
            Assert.ArgumentNotNull(wizardArgs, nameof(wizardArgs));
            Install9WizardArgs args = (Install9WizardArgs)wizardArgs;

            this.owner  = args.WizardWindow;
            this.tasker = args.Tasker;
            this.TasksList.DataContext = args.Tasker.Tasks.Where(t => (t.SupportsUninstall() && t.UnInstall) || !t.UnInstall);
        }
コード例 #9
0
        public async Task <Tree <ImgTwinModel> > GetTreeAsync(int businessId)
        {
            var foldersTask  = Task.Run(() => _foldersRepo.GetByBusinessAsync(businessId));
            var productsTask = Task.Run(() => _productRepo.GetProductsByBusinessAsync(businessId));

            var(folders, products) = await Tasker.WhenAll(foldersTask, productsTask);

            Tree = _categoryFiller.CreateTree(folders.ToList(), products.ToList());
            return(Tree);
        }
コード例 #10
0
ファイル: Repository.cs プロジェクト: sundbing/hakchi2
 private Conclusion LoadTask(Tasker tasker, Object syncObject)
 {
     tasker.SetStatus("Loading...");
     RepositoryProgress += (long current, long max) =>
     {
         tasker.SetProgress(current, max);
     };
     Load();
     return(Conclusion.Success);
 }
コード例 #11
0
        private Tasker DownloadFile(string url, string fileName)
        {
            var tasker = new Tasker(parentForm);

            tasker.AttachViews(new Tasks.TaskerTaskbar(), new Tasks.TaskerForm());
            tasker.SetStatusImage(Resources.sign_sync);
            tasker.SetTitle(Resources.DownloadingEllipsis);
            tasker.AddTask(WebClientTasks.DownloadFile(url, fileName));
            return(tasker);
        }
コード例 #12
0
ファイル: TaskWork.cs プロジェクト: mkbiltek2019/ERP_6.0
        static TaskWork()
        {
            _tasker = new Tasker();

            _tasker.Add("处理还未发送异常", 10, () => Process.ProcessNoSend(Config.ReadQuantity));
            _tasker.Add("处理异常超时5次失败", 100, () => Process.ProcessFailure(Config.ReadQuantity, 5));
            _tasker.Add("处理异常超时10次失败", 200, () => Process.ProcessFailure(Config.ReadQuantity, 10));
            _tasker.Add("处理异常超时20次失败", 600, () => Process.ProcessFailure(Config.ReadQuantity, 20));
            _tasker.Add("删除处理异常成功执行的记录", 3600, Process.ProcessDeleteSuccess);
        }
コード例 #13
0
        public void Goto_Screen(string _id, bool fade_in_out = false, params string [] args)
        {
            fade = fade_in_out;

            if (fade)
            {
                var total_time = 2f;
                fade_task = new Tasker(
                    (time) => {
                    // set fader
                    fade_timer = total_time;
                    fade_task.Next();
                },
                    (time) => {
                    // fade to black
                    if (fade_timer >= 0)
                    {
                        transparency = (total_time - fade_timer) / total_time;
                        fade_timer  -= (float)time.ElapsedGameTime.TotalSeconds;
                    }
                    else
                    {
                        fade_task.Next();
                    }
                },
                    (time) => {
                    // change screen while in black
                    active?.Destroy();
                    active = screens[_id];
                    active?.Load(args);

                    fade_timer = 0f;
                    fade_task.Next();
                },
                    (time) => {
                    // fade to white
                    if (fade_timer < total_time)
                    {
                        transparency = (total_time - fade_timer) / fade_timer;
                        fade_timer  += (float)time.ElapsedGameTime.TotalSeconds;
                    }
                    else
                    {
                        fade_task.Next();
                    }
                }
                    );
            }
            else
            {
                active?.Destroy();
                active = screens[_id];
                active?.Load(args);
            }
        }
コード例 #14
0
ファイル: Program.cs プロジェクト: rohansen/CodeExamples
            public async static void Start()
            {
                int x = 1;
                int y = 2;
                int z = x + y;

                Console.WriteLine(z);
                Console.WriteLine("asd");
                Task <int> xx         = Tasker.MakeTask();
                var        taskResult = await xx;
            }
コード例 #15
0
 public Task(string taskName, int executionOrder, Tasker owner, List <InstallParam> localParams,
             Dictionary <string, string> taskOptions)
 {
     this.Name           = taskName;
     this.ExecutionOrder = executionOrder;
     this.Owner          = owner;
     this.LocalParams    = localParams;
     this.ShouldRun      = true;
     this.TaskOptions    = taskOptions;
     this.State          = TaskState.Pending;
     this.InnerTasks     = new List <SitecoreTask>();
 }
コード例 #16
0
        public override void Load(params string [] args)
        {
            SkyVaultLogo = Assets.It.Load_Texture("logo", "Logo");
            MonoGameLogo = Assets.It.Load_Texture("SquareLogo_1024px", "Mono");

            float timing = 0.02f;

            tasker = new Tasker(
                (time) =>
            {
                SkyLogoY = Math2.Lerp(SkyLogoY, LostIslandRanal.ScreenHeight / 2 - Logo_Size / 2, 0.08f);
                if (SkyLogoY < LostIslandRanal.ScreenHeight / 2 - (Logo_Size / 2) + 1)
                {
                    tasker.Next();
                }
            },
                (time) =>
            {
                sky_color = Math2.Lerp(sky_color, Color.Transparent, 0.02f);
                if (Vector4.Distance(sky_color.ToVector4(), Color.Transparent.ToVector4()) < 0.1f)
                {
                    tasker.Next();
                }
            },
                (time) =>
            {
                MonoLogoY = Math2.Lerp(MonoLogoY, LostIslandRanal.ScreenHeight / 2 - Logo_Size / 2, 0.08f);
                sky_color = Math2.Lerp(sky_color, Color.Transparent, 0.02f);
                if (MonoLogoY < LostIslandRanal.ScreenHeight / 2 - (Logo_Size / 2) + 1)
                {
                    tasker.Next();
                }
            },
                (time) =>
            {
                sky_color  = Math2.Lerp(sky_color, Color.Transparent, 0.02f);
                mono_color = Math2.Lerp(mono_color, Color.Transparent, 0.02f);
                if (Vector4.Distance(mono_color.ToVector4(), Color.Transparent.ToVector4()) < 0.1f)
                {
                    tasker.Next();
                }
            },
                (time) =>
            {
                sky_color  = Math2.Lerp(sky_color, Color.Transparent, 0.02f);
                mono_color = Math2.Lerp(mono_color, Color.Transparent, 0.02f);

                screen_manager.Goto_Screen("Menu", true);
                tasker.Next();
            }, (time) => { }
                );
        }
コード例 #17
0
 private void ModHubForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (hakchi.Shell.IsOnline && hakchi.Shell.Execute("[ -e /mod-recovery.flag ]") == 0)
     {
         using (var tasker = new Tasker(this))
         {
             tasker.AttachViews(new TaskerTaskbar(), new TaskerForm());
             tasker.SetStatusImage(Resources.sign_sync);
             tasker.SetTitle(Resources.Rebooting);
             tasker.AddTasks(new MembootTasks(MembootTasks.MembootTaskType.Memboot));
             tasker.Start();
         }
     }
 }
コード例 #18
0
        public EyesService(string serviceName, Logger logger, int threadPoolSize,
                           AutoResetEvent innerDebugLock, AutoResetEvent outerDebugLock,
                           EyesServiceListener listener, Tasker tasker)
        {
            thread_ = new Thread(Run);
            thread_.IsBackground = true;
            thread_.Name         = serviceName;

            threadPoolSize_ = threadPoolSize;
            listener_       = listener;
            Logger          = logger;
            innerDebugLock_ = innerDebugLock;
            outerDebugLock_ = outerDebugLock;
            tasker_         = tasker;
        }
コード例 #19
0
ファイル: Hmod.cs プロジェクト: JuniGobi/Hakchi2-CE
        public static List <Hmod> GetMods(bool onlyInstalled = false, string[] installed = null, Form taskerParent = null)
        {
            var usermodsDirectory = UserModsDirectory;
            var installedMods     = installed ?? hakchi.GetPackList() ?? new string[] { };
            var modsList          = new List <string>();


            if (onlyInstalled)
            {
                modsList.AddRange(installedMods);
            }
            else
            {
                if (Directory.Exists(usermodsDirectory))
                {
                    foreach (var mod in Directory.GetDirectories(usermodsDirectory, "*.hmod", SearchOption.TopDirectoryOnly).Select(m => Path.GetFileNameWithoutExtension(m)).Where(m => BadCharsRegex.IsMatch(m)))
                    {
                        Directory.Move(Path.Combine(usermodsDirectory, $"{mod}.hmod"), Path.Combine(usermodsDirectory, $"{GetCleanName(mod)}.hmod"));
                    }

                    foreach (var mod in Directory.GetFiles(usermodsDirectory, "*.hmod", SearchOption.TopDirectoryOnly).Select(m => Path.GetFileNameWithoutExtension(m)).Where(m => BadCharsRegex.IsMatch(m)))
                    {
                        File.Move(Path.Combine(usermodsDirectory, $"{mod}.hmod"), Path.Combine(usermodsDirectory, $"{GetCleanName(mod)}.hmod"));
                    }

                    modsList.AddRange(from m
                                      in Directory.GetDirectories(usermodsDirectory, "*.hmod", SearchOption.TopDirectoryOnly)
                                      select Path.GetFileNameWithoutExtension(m));
                    modsList.AddRange(from m
                                      in Directory.GetFiles(usermodsDirectory, "*.hmod", SearchOption.TopDirectoryOnly)
                                      select Path.GetFileNameWithoutExtension(m));
                }
            }

            using (Tasker tasker = new Tasker(taskerParent))
            {
                tasker.AttachView(new Tasks.TaskerForm());
                var modObject = new ModTasks.ModObject();
                modObject.HmodsToLoad    = modsList;
                modObject.InstalledHmods = installedMods ?? new string[] { };
                tasker.SetTitle(Resources.LoadingHmods);
                tasker.SetStatusImage(Resources.sign_brick);
                tasker.SyncObject = modObject;
                tasker.AddTask(ModTasks.GetHmods);
                tasker.Start();
                return(modObject.LoadedHmods);
            }
        }
コード例 #20
0
ファイル: Program.cs プロジェクト: HD-LB/UnitTesting
        static void Main(string[] args)
        {
            var consoleLogger = new ConsoleLogger();
            var idProvider    = new IdProvider();

            var taskManager = new Tasker(consoleLogger, idProvider);

            var task1 = new Task("Buy something", DateTime.Now.AddDays(2));
            var task2 = new Task("Move something.", DateTime.Now.AddDays(2));
            var task3 = new Task("Get something.", DateTime.Now.AddDays(2));

            taskManager.Save(task1);
            taskManager.Save(task2);
            taskManager.Delete(2);
            taskManager.Save(task3);
        }
コード例 #21
0
        public void TestTaskManager_WhenAddTask_ShouldCallLog()
        {
            //Arrange
            var mockedLogger     = new MockedLogger();
            var mockedIdProvider = new MockedIdProvider();
            var taskManager      = new Tasker(mockedLogger, mockedIdProvider);


            var task = new Task("");

            //Act
            taskManager.Save(task);

            //Assert
            Assert.IsTrue(mockedLogger.IsLogCalled);
        }
コード例 #22
0
ファイル: CategoryService.cs プロジェクト: gevorg96/SR.WebApi
        public async Task <ProductGroupViewModel> Search(UserProfile user, string name, string path = null)
        {
            var businessTask = Task.Run(() => businessRepo.GetByIdAsync(user.business_id.Value));
            var fillerTask   = Task.Run(() => foldersDs.GetTreeAsync(user.business_id.Value));

            var(tree, business) = await Tasker.WhenAll(fillerTask, businessTask);

            var bname = business.id + ". " + business.name;

            var prodGroup = new ProductGroupViewModel();
            Tree <ImgTwinModel>        subTree = null;
            IEnumerable <ImgTwinModel> result  = new List <ImgTwinModel>();

            if (!string.IsNullOrEmpty(path))
            {
                subTree = foldersDs.SearchSubTree(path);
            }

            if (!string.IsNullOrEmpty(name))
            {
                result = foldersDs.Search(subTree ?? foldersDs.Tree, name);
            }
            //result = result.Where(p => p.fullpath.Split('/')[2] == bname).ToList();

            //get folders from result
            prodGroup.Folders = result.Where(p => p.isFolder)
                                .Select(p => new FolderViewModel {
                id = p.id, folder = p.folder, fullpath = p.fullpath
            }).ToList();

            //get products from result
            var pics = result.Where(p => p.isFile)
                       .Select(p => new ProductViewModel {
                Id = p.id
            }).OrderBy(p => p.Id).ToList();

            if (pics.Any())
            {
                prodGroup.Products = new List <ProductViewModel>();
                foreach (var productViewModel in pics)
                {
                    prodGroup.Products.Add(await productService.GetProduct(user, productViewModel.Id));
                }
            }

            return(prodGroup);
        }
コード例 #23
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Tasker            tasker = this.DataContext as Tasker;
            List <TasksModel> model  = new List <TasksModel>();

            model.Add(new TasksModel("Global", tasker.GlobalParams));
            foreach (PowerShellTask task in tasker.Tasks.Where(t => t.ShouldRun && t.LocalParams.Any()))
            {
                if (!tasker.UnInstall || (tasker.UnInstall && task.SupportsUninstall()))
                {
                    model.Add(new TasksModel(task.Name, task.LocalParams));
                }
            }

            this.InstallationParameters.DataContext   = model;
            this.InstallationParameters.SelectedIndex = 0;
        }
コード例 #24
0
        void ThreadWorkerFunc()
        {
            while (true)
            {
                // Wait and try to get a task.
                Tasker task = collection.Take();

                // Master doesn't want us any more... :(
                if (null == task)
                {
                    break;
                }

                // Make the call!
                task.Invoke();
            }
        }
コード例 #25
0
        static void Main()
        {
            var fileLogger    = new FileLogger();
            var consoleLogger = new ConsoleLogger();
            var idProvider    = new IdProvider();

            var taskManager = new Tasker(consoleLogger, idProvider);

            var task1 = new taskManager.Models.Task("Kupi hlqb");
            var task2 = new taskManager.Models.Task("IzmiiKolata", DateTime.Now.AddDays(2));
            var task3 = new taskManager.Models.Task("Kupi bira", DateTime.Now);

            taskManager.save(task1);
            taskManager.save(task2);
            taskManager.Delete(2);
            taskManager.save(task3);
        }
コード例 #26
0
        public void Clear()
        {
            files.Items.Clear();
            Ips.Items.Clear();
            domains.Items.Clear();
            relations.Items.Clear();
            computers.Items.Clear();
            computerIPs.Items.Clear();
            computerDomains.Items.Clear();

            if (tasker == null)
            {
                tasker = new Tasker();
                tasker.AsociaEventosTareas();
            }

            tasker.RemoveAllTasks();
        }
コード例 #27
0
        /// <summary>
        /// Initialize modules
        /// </summary>
        public Manager(System.Action <Manager, ProgramManager, Console, Input, FileHelper, Tasker, Handler> execution)
        {
            // Initialize modules
            this.Program    = new ProgramManager(this);
            this.Console    = new Console(this);
            this.Input      = new Input(this);
            this.FileHelper = new FileHelper(this);
            this.Tasker     = new Tasker(this);
            this.Handler    = new Handler(this);

            // Not in method invocation
            this.RunStatistics     = new RunStatistics(this);
            this.ProgramStatistics = new ProgramStatistics(this);
            this.ProxyController   = new ProxyController(this);

            // Execution
            execution.Invoke(this, this.Program, this.Console, this.Input, this.FileHelper, this.Tasker, this.Handler);
        }
コード例 #28
0
ファイル: Program.cs プロジェクト: snorkleboy/seeSharp
    static void Main(string[] args)
    {
        Thread.CurrentThread.Name = "main";

        CustomThreads custom    = new CustomThreads();
        ThreadPooler  pooler    = new ThreadPooler();
        MultiTask     parrallel = new MultiTask();
        Tasker        tasker    = new Tasker();

        custom.DoWork();
        Console.WriteLine("custom threader finished");
        pooler.DoWork();
        Console.WriteLine("pooler finished");
        parrallel.DoWork();
        Console.WriteLine("parrallel finished");
        tasker.DoWork();
        Console.WriteLine("tasker finished");
    }
コード例 #29
0
        public InstallSIFTask(string taskName, int executionOrder, Tasker owner, List <InstallParam> localParams,
                              Dictionary <string, string> taskOptions)
            : base(taskName, executionOrder, owner, localParams, taskOptions)
        {
            this.sifVersionInstall = this.TaskOptions["InstallVersion"];
            if (this.TaskOptions.ContainsKey("UninstallVersion"))
            {
                this.sifVersionUnInstall = this.TaskOptions["UninstallVersion"];
            }
            else
            {
                this.sifVersionUnInstall = this.sifVersionInstall;
            }

            this.repo           = this.TaskOptions["Repository"];
            this.Name           = taskName;
            this.ExecutionOrder = int.MinValue;
        }
コード例 #30
0
        public void TestTaskManager_WithMoq_WhenAddTask_ShoudCallLog()
        {
            // Arrange
            var mockedLogger     = new Mock <Ilogger>();
            var mockedIdProvider = new Mock <IIdProvider>();

            var taskManager = new Tasker(mockedLogger.Object, mockedIdProvider.Object);

            mockedLogger.Setup(x => x.Log(It.IsAny <string>()));

            var task = new Task("");

            // Act
            taskManager.save(task);

            //Assert
            mockedLogger.Verify();
        }