Beispiel #1
0
        public void GetMissingRequiredCategories_Returns_Missing_Required_Categories_When_They_Are_Missing()
        {
            var presentCategory = new MetaCategory {
                Name = "Present", Id = 1, TypeGroup = new TypeGroup {
                    Name = "Language"
                }
            };
            var missingCategory = new MetaCategory {
                Name = "Missing", Id = 2
            };
            var requiredCategories = new List <MetaCategory> {
                missingCategory, presentCategory
            };
            var presentMeta = new MetaData {
                Category = presentCategory, Id = 1
            };

            A.CallTo(() => _metadataRepository.GetByRangeOfIds(A <List <int> > ._)).Returns(new List <MetaData> {
                presentMeta
            });
            A.CallTo(() => _categoryRepository.GetRequiredCategories(A <string> ._)).Returns(requiredCategories);

            Assert.Single(_validationService.GetMissingRequiredCategories(new List <int> {
                presentMeta.Id
            }));
        }
Beispiel #2
0
        public void GetByRangeOfIds_Returns_Empty_List_When_List_of_Ids_Is_Null()
        {
            var meta = Mock.MockMeta(_status, _category);

            Mock.Database.InsertMeta(meta);

            Assert.Empty(MetaRepository.GetByRangeOfIds(null));
        }
Beispiel #3
0
        public List <string> GetMissingRequiredCategories(List <int> metaIds)
        {
            var missingCategories = new List <string>();

            if (metaIds == null)
            {
                metaIds = new List <int>();
            }

            var metas = _metadataRepository.GetByRangeOfIds(metaIds);

            // Retrieves the language of the metadata.
            var metasWithLanguage = metas.Where(x => x.Category.TypeGroup.Name.ToLower().Equals("language")).ToList();
            var languageMeta      = metasWithLanguage.FirstOrDefault();

            if (languageMeta == null)
            {
                missingCategories.Add("Language");
                return(missingCategories);
            }

            var requiredCategories = _categoryRepository.GetRequiredCategories(languageMeta.Abbreviation);

            foreach (var requiredCategory in requiredCategories)
            {
                var category = metas.FirstOrDefault(x => x.Category.Id == requiredCategory.Id);
                if (category == null)
                {
                    missingCategories.Add(requiredCategory.Name);
                }
            }

            return(missingCategories);
        }
Beispiel #4
0
        private Language GetLanguage(Response viewModel, List <int> metaIds)
        {
            // Fetch language id
            var metas        = _metaRepository.GetByRangeOfIds(metaIds);
            var languageMeta = metas.FirstOrDefault(x => x.Category.TypeGroup.Name.ToLower().Equals("language"));

            if (languageMeta == null)
            {
                viewModel.Errors.TryAddModelError("metaIds", "Did not contain an id for language");
                return(null);
            }

            var language = _languageRepository.GetByAbbreviation(languageMeta.Language.Abbreviation);

            if (language == null)
            {
                viewModel.Errors.TryAddModelError("metaIds", $"Language meta with id {languageMeta.Id} is not supported");
            }

            return(language);
        }
Beispiel #5
0
        public ConceptServiceTest()
        {
            ConceptMediaRepository = A.Fake <IConceptMediaRepository>();
            ConceptRepository      = A.Fake <IConceptRepository>();
            StatusRepository       = A.Fake <IStatusRepository>();
            LanguageRepository     = A.Fake <ILanguageRepository>();
            MetadataRepository     = A.Fake <IMetadataRepository>();
            UrlHelper = A.Fake <IUrlHelper>();

            Mapper = AutoMapper.Mapper.Instance;

            Service                 = new ConceptService(ConceptRepository, StatusRepository, ConceptMediaRepository, MetadataRepository, LanguageRepository, Mapper, UrlHelper);
            Mock                    = new Mock.Mock();
            _status                 = new Status();
            BaseListQuery           = BaseListQuery.DefaultValues("nb");
            _language               = new Language();
            _listOfMetaWithLanguage = new List <MetaData> {
                new MetaData
                {
                    Language = _language, Category = new MetaCategory {
                        TypeGroup = new TypeGroup {
                            Name = "language"
                        }
                    }
                }
            };
            _userInfo = new UserInfo
            {
                FullName = "Fullname",
                Email    = "Email"
            };

            A.CallTo(() => StatusRepository.GetById(A <int> ._)).Returns(null);
            A.CallTo(() => MetadataRepository.GetByRangeOfIds(A <List <int> > ._)).Returns(_listOfMetaWithLanguage);
            A.CallTo(() => LanguageRepository.GetByAbbreviation(A <string> ._)).Returns(_language);
        }