/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/Core/CodeAnalysisTest/ResourceDescriptionTests.cs
55 строк
3 KB
Jared Parsons
generated move
28 сен 2020, 19:36
28 сен 2020, 19:36
1cca63b
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. #nullable disable using System; using System.IO; using Microsoft.CodeAnalysis.Text; using Xunit; namespace Microsoft.CodeAnalysis.UnitTests { public class ResourceDescriptionTests { [Fact] public void ResourceDescriptionCtors() { Func<Stream> data = () => null; // this is ok: new ResourceDescription("res", "file", data, isPublic: true); new ResourceDescription("re/s", "file", data, isPublic: true); new ResourceDescription("re\\s", "file", data, isPublic: true); new ResourceDescription("re\\s", "fil*<>|e", data, isPublic: true); // null: Assert.Throws<ArgumentNullException>(() => new ResourceDescription(null, "file", data, isPublic: true)); Assert.Throws<ArgumentNullException>(() => new ResourceDescription("res", null, data, isPublic: true)); Assert.Throws<ArgumentNullException>(() => new ResourceDescription("res", "file", null, isPublic: true)); Assert.Throws<ArgumentNullException>(() => new ResourceDescription(null, data, isPublic: true)); Assert.Throws<ArgumentNullException>(() => new ResourceDescription("res", null, isPublic: true)); // empty: Assert.Throws<ArgumentException>(() => new ResourceDescription("", "file", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("res", "", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("res", "", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("", "file", data, isPublic: true)); // invalid chars: Assert.Throws<ArgumentException>(() => new ResourceDescription("x", "x/x", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("x", "x\\x", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("x", "x:x", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("x", "\0", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("", "x", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("xxx\0xxxx", "", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("xxx\uD800asdas", "", data, isPublic: true)); Assert.Throws<ArgumentException>(() => new ResourceDescription("xxx", "xxx\uD800asdas", data, isPublic: true)); // Now checked during emit. new ResourceDescription(new string('e', 1024), data, true); new ResourceDescription("x", new string('e', 260), data, true); } } }