public async Task HandleGetUniqueTagResponsiblesQuery_ShouldReturnOkResult()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new GetUniqueTagResponsiblesQueryHandler(context);
                var result = await dut.Handle(_queryForProject1, default);

                Assert.AreEqual(ResultType.Ok, result.ResultType);
            }
        }
        public async Task HandleGetUniqueTagResponsiblesQuery_ShouldReturnEmptyListOfUniqueResponsibleCodes()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut = new GetUniqueTagResponsiblesQueryHandler(context);

                var result = await dut.Handle(new GetUniqueTagResponsiblesQuery("Unknown"), default);

                Assert.AreEqual(0, result.Data.Count);
            }
        }
        public async Task HandleGetUniqueTagResponsiblesQuery_ShouldReturnCorrectUniqueResponsibleCodes()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut = new GetUniqueTagResponsiblesQueryHandler(context);

                var result = await dut.Handle(_queryForProject1, default);

                Assert.AreEqual(1, result.Data.Count);
                Assert.IsTrue(result.Data.Any(rt => rt.Code == _testDataSet.Responsible1.Code));

                result = await dut.Handle(new GetUniqueTagResponsiblesQuery(_testDataSet.Project2.Name), default);

                Assert.AreEqual(1, result.Data.Count);
                Assert.IsTrue(result.Data.Any(rt => rt.Code == _testDataSet.Responsible1.Code));
            }
        }
        public async Task HandleGetUniqueTagResponsiblesQuery_ShouldReturnCorrectUniqueResponsibleCodes_AfterTransfer()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher,
                                                         _currentUserProvider))
            {
                var tag = context.Tags.Include(t => t.Requirements).ThenInclude(r => r.PreservationPeriods).First();
                tag.StartPreservation();
                tag.Transfer(_testDataSet.Journey1With2Steps);
                context.SaveChangesAsync().Wait();
            }

            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut = new GetUniqueTagResponsiblesQueryHandler(context);

                var result = await dut.Handle(_queryForProject1, default);

                Assert.AreEqual(2, result.Data.Count);
                Assert.IsTrue(result.Data.Any(rt => rt.Code == _testDataSet.Responsible1.Code));
                Assert.IsTrue(result.Data.Any(rt => rt.Code == _testDataSet.Responsible2.Code));
            }
        }