// ----------------------------------------------------------------------- // // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // // ----------------------------------------------------------------------- namespace Lucene.Net.Util { using System; using System.Collections.Generic; using System.Linq; using System.Text; using Lucene.Net.Analysis.TokenAttributes; using FlagsAttribute = Lucene.Net.Analysis.TokenAttributes.FlagsAttribute; #if NUNIT using NUnit.Framework; using Extensions.NUnit; #else using Gallio.Framework; using MbUnit.Framework; #endif [TestFixture] [Category(TestCategories.Unit)] [Parallelizable] public class AttributeBaseTest { [Test] public void Reflect() { var attribute = new FlagsAttribute(); var builder = new StringBuilder(); attribute.Reflect((t, n, v) => { builder .Append(t) .Append(".") .Append(n) .Append("=") .Append(v); }); Assert.AreEqual("Lucene.Net.Analysis.TokenAttributes.FlagsAttribute.Flags=0", builder.ToString()); } [Test] public void Reflect_WithNotSupportedException() { var twoAttributesInstance = new TwoAttributes(); var builder = new StringBuilder(); Assert.Throws(() => { twoAttributesInstance.Reflect((t, n, v) => { builder .Append(t) .Append(".") .Append(n) .Append("=") .Append(v); }); }); } [Test] public void ReflectAsString() { var attribute = new FlagsAttribute(); var result = attribute.ReflectAsString(); Assert.AreEqual("Flags=0", result); result = attribute.ReflectAsString(true); Assert.AreEqual("FlagsAttribute#Flags=0", result); } #region Helpers public class TwoAttributes : AttributeBase, IFlagsAttribute, ISecondAttribute { public int Flags { get; set; } public override void Clear() { throw new NotImplementedException(); } public override void CopyTo(AttributeBase attributeBase) { throw new NotImplementedException(); } } public interface ISecondAttribute : IAttribute { } #endregion } }