コード例 #1
0
        public void Test_GetStateAvailability_ByAdmin()
        {
            var stateAvailability = _context.CreateMany <long>(6).ToArray();
            var dictionary        = _context.Create <Dictionary <long, StateData> >();

            _context.ApplicationRepository.Setup(x => x.Get(_applicationData.Id)).Returns(_applicationData);
            _context.StateFilter.Setup(x => x.GetStateAvailabilityToSet()).Returns(stateAvailability);
            _context.IdentityService.Setup(x => x.IsInRole(RoleType.Admin)).Returns(true);
            _context.IdentityService.Setup(x => x.Language).Returns(TwoLetterISOLanguageName.English);
            _context.StateRepository.Setup(x => x.Get(TwoLetterISOLanguageName.English, stateAvailability)).Returns(dictionary);

            var stateModels = _service.GetStateAvailability(_applicationData.Id);

            foreach (var model in stateModels)
            {
                dictionary[model.StateId].LocalizedName.ShouldBeEquivalentTo(model.StateName);
            }
            _context.IdentityService.Verify(x => x.IsInRole(RoleType.Admin), Times.Once());
            _context.ApplicationRepository.Verify(x => x.Get(_applicationData.Id), Times.Once());
            _context.StateFilter.Verify(x => x.GetStateAvailabilityToSet(), Times.Once());
            _context.IdentityService.Verify(x => x.Language, Times.Exactly(1));
            _context.StateRepository.Verify(x => x.Get(TwoLetterISOLanguageName.English, stateAvailability), Times.Once());
        }