示例#1
0
        public async Task Then_Returns_Ok_And_Response(
            int opportunityId,
            GetDetailQueryResult getDetailQueryResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] OpportunityController opportunityController)
        {
            mockMediator
            .Setup(x => x.Send(
                       It.Is <GetDetailQuery>(y => y.OpportunityId == opportunityId),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(getDetailQueryResult);

            var controllerResult = await opportunityController.Detail(opportunityId);

            var okObjectResult = controllerResult as OkObjectResult;
            var response       = okObjectResult.Value as GetDetailResponse;

            Assert.IsNotNull(controllerResult);
            Assert.IsNotNull(okObjectResult);
            Assert.IsNotNull(response);
            Assert.AreEqual(okObjectResult.StatusCode, (int)HttpStatusCode.OK);
            Assert.AreEqual(getDetailQueryResult.Opportunity.Id, response.Opportunity.Id);
            Assert.AreEqual(getDetailQueryResult.Sectors, response.Sectors);
            Assert.AreEqual(getDetailQueryResult.JobRoles, response.JobRoles);
            Assert.AreEqual(getDetailQueryResult.Levels, response.Levels);
        }
示例#2
0
        public When_Placement_Information_Loaded()
        {
            var dto = new PlacementInformationSaveDto
            {
                OpportunityId       = OpportunityId,
                OpportunityItemId   = OpportunityItemId,
                JobRole             = JobRole,
                OpportunityType     = OpportunityType.Referral,
                CompanyName         = CompanyName,
                CompanyNameAka      = CompanyNameAka,
                PlacementsKnown     = PlacementsKnown,
                Placements          = Placements,
                NoSuitableStudent   = true,
                HadBadExperience    = true,
                ProvidersTooFarAway = true
            };

            var config = new MapperConfiguration(c => c.AddMaps(typeof(PlacementInformationSaveDtoMapper).Assembly));
            var mapper = new Mapper(config);

            _opportunityService = Substitute.For <IOpportunityService>();
            _opportunityService.GetPlacementInformationAsync(OpportunityItemId).Returns(dto);

            var opportunityController = new OpportunityController(_opportunityService, mapper);

            _result = opportunityController.GetPlacementInformationAsync(OpportunityItemId).GetAwaiter().GetResult();
        }
示例#3
0
        public void SetUp()
        {
            _opportunityId = _fixture.Create <int>();
            _accountId     = _fixture.Create <long>();
            _request       = _fixture.Create <ApplyRequest>();
            _result        = _fixture.Create <CreateApplicationCommandResult>();

            _mediator = new Mock <IMediator>();

            _controller = new OpportunityController(Mock.Of <ILogger <OpportunityController> >(), _mediator.Object);

            _mediator.Setup(x => x.Send(It.Is <CreateApplicationCommand>(command =>
                                                                         command.PledgeId == _opportunityId &&
                                                                         command.EmployerAccountId == _accountId &&
                                                                         command.EncodedAccountId == _request.EncodedAccountId &&
                                                                         command.Details == _request.Details &&
                                                                         command.StandardId == _request.StandardId &&
                                                                         command.NumberOfApprentices == _request.NumberOfApprentices &&
                                                                         command.StartDate == _request.StartDate &&
                                                                         command.HasTrainingProvider == _request.HasTrainingProvider &&
                                                                         command.Sectors.Equals(_request.Sectors) &&
                                                                         command.Locations.Equals(_request.Locations) &&
                                                                         command.AdditionalLocation == _request.AdditionalLocation &&
                                                                         command.SpecificLocation == _request.SpecificLocation &&
                                                                         command.FirstName == _request.FirstName &&
                                                                         command.LastName == _request.LastName &&
                                                                         command.EmailAddresses.Equals(_request.EmailAddresses) &&
                                                                         command.BusinessWebsite == _request.BusinessWebsite &&
                                                                         command.UserId == _request.UserId &&
                                                                         command.UserDisplayName == _request.UserDisplayName
                                                                         ), It.IsAny <CancellationToken>()))
            .ReturnsAsync(_result);
        }
        public When_Opportunity_Basket_Is_Loaded_With_Referrals()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly));

            var mapper = new Mapper(config);

            _opportunityService = Substitute.For <IOpportunityService>();
            _opportunityService.GetOpportunityBasketAsync(1).Returns(new OpportunityBasketViewModel
            {
                OpportunityId     = 1,
                CompanyName       = "Company Name",
                CompanyNameAka    = "Also Known As",
                ProvisionGapItems = null,
                ReferralItems     = new List <BasketReferralItemViewModel>
                {
                    new BasketReferralItemViewModel
                    {
                        OpportunityType   = "Referral",
                        OpportunityItemId = 5
                    }
                }
            });

            var opportunityController = new OpportunityController(_opportunityService, mapper);
            var controllerWithClaims  = new ClaimsBuilder <OpportunityController>(opportunityController)
                                        .AddUserName("CreatedBy")
                                        .Build();

            _result = controllerWithClaims.GetOpportunityBasketAsync(1, 0).GetAwaiter().GetResult();
        }
        public async Task Returns_Ok_And_Response(
            GetIndexQueryResult getIndexQueryResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] OpportunityController opportunityController
            )
        {
            var sectorsList = _fixture.Create <IEnumerable <string> >();

            mockMediator
            .Setup(x => x.Send(
                       It.IsAny <GetIndexQuery>(),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(getIndexQueryResult);

            var controllerResult = await opportunityController.GetIndex(sectorsList);

            var okObjectResult = controllerResult as OkObjectResult;
            var responseObject = okObjectResult.Value as GetIndexResponse;

            Assert.IsNotNull(controllerResult);
            Assert.IsNotNull(okObjectResult);
            Assert.IsNotNull(responseObject);
            Assert.IsNotNull(responseObject.Opportunities);
            Assert.IsNotNull(responseObject.Sectors);
            Assert.IsNotNull(responseObject.JobRoles);
            Assert.IsNotNull(responseObject.Levels);
            Assert.AreEqual(okObjectResult.StatusCode, (int)HttpStatusCode.OK);
        }
        public void GetOpportunityByName_Ok()
        {
            var jsonDataTable = @"[
                    {
                        'OpportunityId': '1',
                        'OpportunityName': 'Squad Care',
                        'OpportunityRequirements': '.NET Core',
                        'DesirableRequirements': 'Conhecimento em Kafka',
                        'DateRegister': '2021-05-05T00:00:00',
                        'ClosingDate': '2021-05-05T00:00:00',
                        'CancellationDate': '2021-05-05T00:00:00',
                        'OpportunityStatus': true,
                        'CareerId': '1',
                        'ServiceId': '1',
                        'ProfessionalLevelId': '1',
                        'OpportunityTypeId': '1',
                    }
                ]";

            var vacationLeader = "Thomas Anjos";

            var listOpportunities = JsonConvert.DeserializeObject <List <Opportunity> >(jsonDataTable);

            _opportunityService.Setup(x => x.GetAllOpportunities()).Returns(listOpportunities);

            var control = new OpportunityController(_opportunityService.Object);

            var result = control.GetOpportunityByName(vacationLeader);

            var okResult = result as OkObjectResult;

            Assert.IsNotNull(result);
            Assert.AreEqual(200, okResult.StatusCode);
        }
        public void InsertOpportunity_Ok()
        {
            var jsonDataTable = @"{
                    'opportunityId': 1,
                    'opportunityName': 'Squad Care alterado',
                    'opportunityRequirements': '.NET Core',
                    'desirableRequirements': 'Conhecimento em Kafka',
                    'dateRegister': '2021-05-05T00:00:00',
                    'closingDate': '2021-05-05T00:00:00',
                    'cancellationDate': '2021-05-05T00:00:00',
                    'opportunityStatus': false,
                    'career': {
                        'careerId': 1
                    },
                    'service': {
                        'serviceId': 1
                    },
                    'professionalLevel': {
                        'professionalLevelId': 1
                    },
                    'opportunityType': {
                        'opportunityTypeId': 1
                    }
                }";

            var opportunity = JsonConvert.DeserializeObject <Opportunity>(jsonDataTable);

            var control = new OpportunityController(_opportunityService.Object);

            var result = control.InsertOpportunity(opportunity);

            var okResult = result as OkResult;

            Assert.AreEqual(200, okResult.StatusCode);
        }
示例#8
0
        public When_Opportunity_Controller_SaveSelectedOpportunities_Is_Called_With_No_Selected_Referrals()
        {
            _opportunityService = Substitute.For <IOpportunityService>();
            _opportunityService.GetOpportunityBasketAsync(1)
            .Returns(new OpportunityBasketViewModel());

            var config = new MapperConfiguration(c => c.AddMaps(typeof(EmployerDtoMapper).Assembly));
            var mapper = new Mapper(config);

            _opportunityController = new OpportunityController(_opportunityService, mapper);

            var controllerWithClaims = new ClaimsBuilder <OpportunityController>(_opportunityController).Build();

            _result = controllerWithClaims.SaveSelectedOpportunitiesAsync(new ContinueOpportunityViewModel
            {
                OpportunityId       = 1,
                SubmitAction        = "SaveSelectedOpportunities",
                SelectedOpportunity = new List <SelectedOpportunityItemViewModel>
                {
                    new SelectedOpportunityItemViewModel
                    {
                        IsSelected      = false,
                        OpportunityType = OpportunityType.Referral.ToString()
                    }
                }
            }).GetAwaiter().GetResult();
        }
        public When_Opportunity_Controller_Save_ProvisionGap_Update_Opportunity()
        {
            const int opportunityId = 1;

            _opportunityService = Substitute.For <IOpportunityService>();
            _opportunityService.IsNewProvisionGapAsync(opportunityId).Returns(false);

            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

            var config = new MapperConfiguration(c =>
            {
                c.AddMaps(typeof(EmployerDtoMapper).Assembly);
                c.ConstructServicesUsing(type =>
                                         type.Name.Contains("LoggedInUserEmailResolver") ?
                                         new LoggedInUserEmailResolver <SaveProvisionGapViewModel, OpportunityDto>(httpContextAccessor) :
                                         type.Name.Contains("LoggedInUserNameResolver") ?
                                         (object)new LoggedInUserNameResolver <SaveProvisionGapViewModel, OpportunityDto>(httpContextAccessor) :
                                         type.Name.Contains("UtcNowResolver") ?
                                         new UtcNowResolver <SaveProvisionGapViewModel, OpportunityDto>(new DateTimeProvider()) :
                                         null);
            });
            var mapper = new Mapper(config);

            var opportunityController = new OpportunityController(_opportunityService, mapper);
            var controllerWithClaims  = new ClaimsBuilder <OpportunityController>(opportunityController)
                                        .AddUserName(UserName)
                                        .AddEmail(Email)
                                        .Build();

            httpContextAccessor.HttpContext.Returns(controllerWithClaims.HttpContext);

            _result = controllerWithClaims.SaveProvisionGapAsync(new SaveProvisionGapViewModel {
                SearchResultProviderCount = 0, SelectedRouteId = 1, Postcode = "cv12wt", SearchRadius = 10
            }).GetAwaiter().GetResult();
        }
示例#10
0
        public When_Recording_Referrals_And_Check_Answers_Is_Submitted_Successfully()
        {
            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

            var config = new MapperConfiguration(c =>
            {
                c.AddMaps(typeof(CheckAnswersDtoMapper).Assembly);
                c.ConstructServicesUsing(type =>
                                         type.Name.Contains("LoggedInUserEmailResolver") ?
                                         new LoggedInUserEmailResolver <CheckAnswersViewModel, CheckAnswersDto>(httpContextAccessor) :
                                         type.Name.Contains("LoggedInUserNameResolver") ?
                                         (object)new LoggedInUserNameResolver <CheckAnswersViewModel, CheckAnswersDto>(httpContextAccessor) :
                                         type.Name.Contains("UtcNowResolver") ?
                                         new UtcNowResolver <CheckAnswersViewModel, CheckAnswersDto>(new DateTimeProvider()) :
                                         null);
            });

            var mapper = new Mapper(config);

            _opportunityService = Substitute.For <IOpportunityService>();

            var opportunityController = new OpportunityController(_opportunityService, mapper);
            var controllerWithClaims  = new ClaimsBuilder <OpportunityController>(opportunityController)
                                        .AddUserName(ModifiedBy)
                                        .Build();

            httpContextAccessor.HttpContext.Returns(controllerWithClaims.HttpContext);

            _result = controllerWithClaims.SaveCheckAnswers(OpportunityId, OpportunityItemId).GetAwaiter().GetResult();
        }
示例#11
0
        public void GetOpportunityByName_Ok()
        {
            var jsonOpportunity = @"
                    {
                        'OpportunityId': '1',
                        'OpportunityName': 'Squad Care',
                        'OpportunityRequirements': '.NET Core',
                        'DesirableRequirements': 'Conhecimento em Kafka',
                        'DateRegister': '2021-05-05T00:00:00',
                        'ClosingDate': '2021-05-05T00:00:00',
                        'CancellationDate': '2021-05-05T00:00:00',
                        'OpportunityStatus': false,
                        'CareerId': '1',
                        'ServiceId': '1',
                        'ProfessionalLevelId': '1',
                        'OpportunityTypeId': '1',
                    }";

            var opportunity = JsonConvert.DeserializeObject <Opportunity>(jsonOpportunity);

            var opportunityName = "Squad Care";

            _opportunityServiceMock.Setup(x => x.GetOpportunityByName(opportunityName)).Returns(opportunity);

            var control = new OpportunityController(_opportunityServiceMock.Object);

            var result = control.GetOpportunityByName(opportunityName);

            var okResult = result as OkObjectResult;

            Assert.IsNotNull(okResult);
            Assert.AreEqual(200, okResult.StatusCode);
        }
        public When_Single_Item_Opportunity_Basket_Confirm_Delete_Opportunity_Item_Is_Loaded()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly));

            var mapper = new Mapper(config);

            _opportunityService = Substitute.For <IOpportunityService>();
            _opportunityService.GetConfirmDeleteOpportunityItemAsync(1).Returns(new ConfirmDeleteOpportunityItemViewModel
            {
                OpportunityItemId = 1,
                OpportunityId     = 2,
                CompanyName       = "Company Name",
                CompanyNameAka    = "Also Known As",
                Postcode          = "PostCode",
                JobRole           = "JobRole",
                BasketItemCount   = 1,
                Placements        = 1,
            });

            var opportunityController = new OpportunityController(_opportunityService, mapper);
            var controllerWithClaims  = new ClaimsBuilder <OpportunityController>(opportunityController)
                                        .AddUserName("CreatedBy")
                                        .Build();

            _result = controllerWithClaims.GetConfirmDeleteOpportunityItemAsync(1).GetAwaiter().GetResult();
        }
示例#13
0
        public void ExternalWebOpportunityIndex()
        {
            // Arrange
            OpportunityController controller = new OpportunityController();

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result.ViewData.Count);
        }
        public ActionResult DuplicateLatestOpportunity(Int32 id)
        {
            // Get latest Opportunity and redirect to Opportunity/Edit
            Int32?opportunityId = new OpportunityController().GetLatestOpportunityIdForCourse(id);

            if (!opportunityId.HasValue)
            {
                return(HttpNotFound());
            }

            return(RedirectToAction("Duplicate", "Opportunity", new { id = opportunityId.Value }));
        }
        public void GetOpportunityByName_BadRequest()
        {
            var opportunityName = "";

            var control = new OpportunityController(_opportunityService.Object);

            var result = control.GetOpportunityByName(opportunityName);

            var badRequestResult = result as BadRequestResult;

            Assert.AreEqual(400, badRequestResult.StatusCode);
        }
示例#16
0
        public void InternalWebOpportunityIndex()
        {
            // Arrange
            OpportunityController controller = new OpportunityController();

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.AreEqual("Internal Website Application.", result.ViewBag.Message);
            Assert.AreEqual("Index", result.ViewName);
            Assert.IsNotNull(result.ViewData.Count);
        }
        public void DeleteOpportunity_BadRequest()
        {
            var jsonDataTable = @"";

            var opportunity = JsonConvert.DeserializeObject <Opportunity>(jsonDataTable);

            var control = new OpportunityController(_opportunityService.Object);

            var result = control.DeleteOpportunity(opportunity);

            var badRequestResult = result as BadRequestResult;

            Assert.AreEqual(400, badRequestResult.StatusCode);
        }
示例#18
0
        public void ExternalWebOpportunityEdit()
        {
            // Arrange
            OpportunityController controller = new OpportunityController();

            // Act
            var        opportunityId = 1;
            ViewResult result        = controller.Edit(opportunityId) as ViewResult;
            var        model         = (Opportunity)result.ViewData.Model;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("BREADALBANE CANOE CLUB EVENT", model.OpportunityTitle);
        }
        public When_Opportunity_Controller_Delete_Referral()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(CheckAnswersDtoMapper).Assembly));
            var mapper = new Mapper(config);

            _opportunityService = Substitute.For <IOpportunityService>();

            var opportunityController = new OpportunityController(_opportunityService, mapper);
            var controllerWithClaims  = new ClaimsBuilder <OpportunityController>(opportunityController)
                                        .AddUserName("CreatedBy")
                                        .Build();

            _result = controllerWithClaims.DeleteReferralAsync(ReferralIdToDelete, OpportunityItemId).GetAwaiter().GetResult();
        }
        public void DeleteOpportunity_Ok()
        {
            var jsonDataTable = @"{      
                'OpportunityId': 1
                }";
            var opportunity   = JsonConvert.DeserializeObject <Opportunity>(jsonDataTable);

            var control = new OpportunityController(_opportunityService.Object);

            var result = control.DeleteOpportunity(opportunity);

            var okResult = result as OkResult;

            Assert.AreEqual(200, okResult.StatusCode);
        }
        public When_Opportunity_Controller_SaveSelectedOpportunities_Is_Called_With_SubmitAction_CompleteProvisionGaps()
        {
            _opportunityService = Substitute.For <IOpportunityService>();

            var config = new MapperConfiguration(c => c.AddMaps(typeof(EmployerDtoMapper).Assembly));
            var mapper = new Mapper(config);

            _opportunityController = new OpportunityController(_opportunityService, mapper);
            var controllerWithClaims = new ClaimsBuilder <OpportunityController>(_opportunityController).Build();

            _result = controllerWithClaims.SaveSelectedOpportunitiesAsync(new ContinueOpportunityViewModel
            {
                SubmitAction = "CompleteProvisionGaps"
            }).GetAwaiter().GetResult();
        }
        public async Task And_Opportunity_Doesnt_Exist_Then_Returns_NotFound(
            int opportunityId,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] OpportunityController opportunityController)
        {
            mockMediator
            .Setup(x => x.Send(It.Is <GetContactDetailsQuery>(y => y.OpportunityId == opportunityId), It.IsAny <CancellationToken>()))
            .ReturnsAsync((GetContactDetailsResult)null);

            var controllerResult = await opportunityController.ContactDetails(opportunityId);

            var notFoundResult = controllerResult as NotFoundResult;

            Assert.IsNotNull(controllerResult);
            Assert.IsNotNull(notFoundResult);
        }
        public void SetUp()
        {
            _opportunityId = _fixture.Create <int>();
            _accountId     = _fixture.Create <long>();

            _result = _fixture.Create <GetConfirmationQueryResult>();

            _mediator = new Mock <IMediator>(MockBehavior.Strict);

            _controller = new OpportunityController(Mock.Of <ILogger <OpportunityController> >(), _mediator.Object);

            _mediator.Setup(x => x.Send(It.Is <GetConfirmationQuery>(query =>
                                                                     query.OpportunityId == _opportunityId
                                                                     ), It.IsAny <CancellationToken>()))
            .ReturnsAsync(_result);
        }
示例#24
0
        public When_Placement_Information_Is_Submitted_Above_Max_Placements()
        {
            var opportunityService = Substitute.For <IOpportunityService>();

            var viewModel = new PlacementInformationSaveViewModel
            {
                PlacementsKnown = true,
                Placements      = 1000
            };

            var config = new MapperConfiguration(c => c.AddMaps(typeof(EmployerMapper).Assembly));
            var mapper = new Mapper(config);

            _opportunityController = new OpportunityController(opportunityService, mapper);
            _result = _opportunityController.SavePlacementInformationAsync(viewModel).GetAwaiter().GetResult();
        }
        public When_Recording_Referrals_And_Check_Answers_Is_Loaded()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(CheckAnswersDtoMapper).Assembly));
            var mapper = new Mapper(config);

            var dto = new ValidCheckAnswersDtoBuilder().Build();

            _opportunityService = Substitute.For <IOpportunityService>();
            _opportunityService.GetCheckAnswersAsync(OpportunityItemId).Returns(dto);

            var opportunityController = new OpportunityController(_opportunityService, mapper);
            var controllerWithClaims  = new ClaimsBuilder <OpportunityController>(opportunityController)
                                        .AddUserName(CreatedBy)
                                        .Build();

            _result = controllerWithClaims.GetCheckAnswersAsync(OpportunityItemId).GetAwaiter().GetResult();
        }
示例#26
0
        public When_MultiItem_Opportunity_Basket_Delete_Opportunity_Item_Is_Posted()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly));

            var mapper = new Mapper(config);

            _opportunityService = Substitute.For <IOpportunityService>();

            var opportunityController = new OpportunityController(_opportunityService, mapper);
            var controllerWithClaims  = new ClaimsBuilder <OpportunityController>(opportunityController)
                                        .AddUserName("CreatedBy")
                                        .Build();

            _result = controllerWithClaims.DeleteOpportunityItemAsync(new DeleteOpportunityItemViewModel {
                OpportunityId = 1, OpportunityItemId = 2, BasketItemCount = 2
            }).GetAwaiter().GetResult();
        }
        public When_Placement_Information_Loaded_With_Placements_Unknown()
        {
            _dto.OpportunityId   = OpportunityId;
            _dto.PlacementsKnown = PlacementsKnown;
            _dto.Placements      = Placements;

            var config = new MapperConfiguration(c => c.AddMaps(typeof(PlacementInformationSaveDtoMapper).Assembly));
            var mapper = new Mapper(config);

            var opportunityService = Substitute.For <IOpportunityService>();

            opportunityService.GetPlacementInformationAsync(Arg.Any <int>()).Returns(_dto);

            var opportunityController = new OpportunityController(opportunityService, mapper);

            _result = opportunityController.GetPlacementInformationAsync(OpportunityItemId).GetAwaiter().GetResult();
        }
示例#28
0
        public When_Opportunity_Controller_Download_Opportunity_Spreadsheet_Is_Called()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly));

            var mapper = new Mapper(config);

            _opportunityService = Substitute.For <IOpportunityService>();
            _opportunityService.GetOpportunitySpreadsheetDataAsync(1).Returns(
                new FileDownloadDto
            {
                FileName    = "test_file.xlsx",
                ContentType = "application/file",
                FileContent = new byte[] { 01, 02 }
            });

            var opportunityController = new OpportunityController(_opportunityService, mapper);

            _result = opportunityController.DownloadOpportunitySpreadsheetAsync(1).GetAwaiter().GetResult();
        }
        public async Task And_Opportunity_Exists_Then_Returns_Ok_And_Pledge(
            int opportunityId,
            GetContactDetailsResult getContactDetailsResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] OpportunityController opportunityController)
        {
            mockMediator
            .Setup(x => x.Send(It.Is <GetContactDetailsQuery>(y => y.OpportunityId == opportunityId), It.IsAny <CancellationToken>()))
            .ReturnsAsync(getContactDetailsResult);

            var controllerResult = await opportunityController.ContactDetails(opportunityId);

            var okObjectResult            = controllerResult as OkObjectResult;
            var getContactDetailsResponse = okObjectResult.Value as GetContactDetailsResponse;

            Assert.IsNotNull(controllerResult);
            Assert.IsNotNull(okObjectResult);
            Assert.IsNotNull(getContactDetailsResponse);
        }
        public async Task Then_Returns_Accounts(
            int opportunityId,
            string userId,
            GetSelectAccountQueryResult getSelectAccountQueryResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] OpportunityController opportunityController)
        {
            mockMediator
            .Setup(x => x.Send(It.Is <GetSelectAccountQuery>(y => y.UserId == userId), It.IsAny <CancellationToken>()))
            .ReturnsAsync(getSelectAccountQueryResult);

            var controllerResult = await opportunityController.SelectAccount(opportunityId, userId) as OkObjectResult;

            var response = controllerResult.Value as GetSelectAccountResponse;

            Assert.IsNotNull(controllerResult);
            Assert.AreEqual(controllerResult.StatusCode, (int)HttpStatusCode.OK);
            Assert.IsNotNull(response);
            Assert.AreEqual(getSelectAccountQueryResult.Accounts.Count(), response.Accounts.Count());
        }