Exemplo n.º 1
0
            public async Task Should_Change_Status_To_UnregisteredUsingClient()
            {
                var txOptions = new System.Transactions.TransactionOptions();

                txOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;

                using var scope = new TransactionScope(TransactionScopeOption.Required, txOptions, TransactionScopeAsyncFlowOption.Enabled);

                //Act
                Guid identityWorkId    = Guid.NewGuid(); //Guid.Parse("7535C4E6-4712-4DD6-955D-FCA86E054D49");
                Guid instanceId        = Guid.NewGuid(); //Guid.Parse("33D7CA50-39E9-4B14-B482-5FCBEC07E8DB");
                var  employees         = await new EmployeeManagerUT().CreateDefaultAsync <Employee>(identityWorkId, instanceId, randomValues: true);
                var  middlewareManager = new MiddlewareManager <Employee>(new BaseRecordManager <Employee>(), new EmployeeValidator());

                //Asserts

                //Get
                var result = await middlewareManager
                             .GetByIdsAsync(employees.Select(p => p.ID).ToList(), identityWorkId);

                Assert.True(result.Any());
                var employeeFromDB = result.FirstOrDefault();

                Assert.Equal(CotorriaStatus.Active, employeeFromDB.LocalStatus);
                Assert.Equal(DateTime.Now.Date, employeeFromDB.LastStatusChange.Date);


                //Set inactive
                DateTime?unregisteredDate = DateTime.Now.AddDays(1);
                var      employeeId       = employeeFromDB.ID;

                var statusClient = new StatusClient <Employee>("", ClientConfiguration.ClientAdapter.Local);
                await statusClient.SetUnregistered(new List <Guid>() { employeeId }, identityWorkId, unregisteredDate);

                //Asserts

                //GetAggain
                result = await middlewareManager
                         .GetByIdsAsync(employees.Select(p => p.ID).ToList(), identityWorkId);

                Assert.True(result.Any());
                employeeFromDB = result.FirstOrDefault();

                //Asserts

                Assert.Equal(CotorriaStatus.Unregistered, employeeFromDB.LocalStatus);
                Assert.Equal(DateTime.Now.Date, employeeFromDB.LastStatusChange.Date);
                Assert.Equal(unregisteredDate.GetValueOrDefault().Date, employeeFromDB.UnregisteredDate.GetValueOrDefault().Date);
            }