public void VerifyThatExtensionValidationWorks()
        {
            var filetype = new FileType
            {
                Name      = "aaaa",
                ShortName = "bbb"
            };

            var transactionContext = TransactionContextResolver.ResolveContext(this.siteDir);
            var transaction        = new ThingTransaction(transactionContext);

            var viewmodel = new FileTypeDialogViewModel(filetype, transaction, this.session.Object, true, ThingDialogKind.Create, this.thingDialogNavigationService.Object);

            var rule = viewmodel["Extension"];

            Assert.That(rule, Is.Not.Null.Or.Not.Empty);

            viewmodel.Extension = "Abc";
            rule = viewmodel["Extension"];
            Assert.That(rule, Is.Not.Null.Or.Not.Empty);

            viewmodel.Extension = "abc9 ";
            rule = viewmodel["Extension"];
            Assert.That(rule, Is.Not.Null.Or.Not.Empty);

            viewmodel.Extension = "abc9";
            rule = viewmodel["Extension"];
            Assert.IsNull(rule);
        }
        public void VerifyThatPropertiesAreSet()
        {
            var category = new Category();

            category.PermissibleClass.Add(ClassKind.FileType);
            var filetype = new FileType
            {
                Name      = "aaaa",
                ShortName = "bbb",
                Extension = "txt"
            };

            this.srdl.DefinedCategory.Add(category);

            var transactionContext = TransactionContextResolver.ResolveContext(this.siteDir);
            var transaction        = new ThingTransaction(transactionContext);

            var viewmodel = new FileTypeDialogViewModel(filetype, transaction, this.session.Object, true, ThingDialogKind.Create, this.thingDialogNavigationService.Object);

            Assert.IsNotEmpty(viewmodel.PossibleContainer);
            Assert.IsNotEmpty(viewmodel.PossibleCategory);
            Assert.AreEqual(viewmodel.Name, filetype.Name);
            Assert.AreEqual(viewmodel.Extension, filetype.Extension);
            Assert.AreEqual(viewmodel.ShortName, filetype.ShortName);
            Assert.AreEqual(viewmodel.IsDeprecated, filetype.IsDeprecated);
        }
        public void VerifyThatNameValidationWorks()
        {
            var filetype = new FileType();

            var transactionContext = TransactionContextResolver.ResolveContext(this.siteDir);
            var transaction        = new ThingTransaction(transactionContext);

            var viewmodel = new FileTypeDialogViewModel(filetype, transaction, this.session.Object, true, ThingDialogKind.Create, this.thingDialogNavigationService.Object);

            var rule = viewmodel["Name"];

            Assert.That(rule, Is.Not.Null.Or.Not.Empty);

            viewmodel.Name = "application/a";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "audio/a-+dza";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "example/a-+dza";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "image/a-+dza";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "message/a-+dza";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "model/a-+dza";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "multipart/a-+dza";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "text/a-+dza";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "video/a-+dza";
            rule           = viewmodel["Name"];
            Assert.IsNull(rule);

            viewmodel.Name = "video/a-+dza   ";
            rule           = viewmodel["Name"];
            Assert.That(rule, Is.Not.Null.Or.Not.Empty);
        }