#region Apache License
//
// 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.
//
#endregion
using System.IO;
using NUnit.Framework;
namespace log4net.Tests.Util
{
///
/// Used for internal unit testing the class.
///
///
/// Used for internal unit testing the class.
///
[TestFixture]
public class RandomStringPatternConverterTest
{
[Test]
public void TestConvert()
{
RandomStringPatternConverter converter = new RandomStringPatternConverter();
// Check default string length
StringWriter sw = new StringWriter();
converter.Convert(sw, null);
Assert.AreEqual(4, sw.ToString().Length, "Default string length should be 4");
// Set string length to 7
converter.Option = "7";
converter.ActivateOptions();
sw = new StringWriter();
converter.Convert(sw, null);
string string1 = sw.ToString();
Assert.AreEqual(7, string1.Length, "string length should be 7");
// Check for duplicate result
sw = new StringWriter();
converter.Convert(sw, null);
string string2 = sw.ToString();
Assert.IsTrue(string1 != string2, "strings should be different");
}
private class RandomStringPatternConverter
{
private object target = null;
public RandomStringPatternConverter()
{
target = Utils.CreateInstance("log4net.Util.PatternStringConverters.RandomStringPatternConverter,log4net");
}
public string Option
{
get { return Utils.GetProperty(target, "Option") as string; }
set { Utils.SetProperty(target, "Option", value); }
}
public void Convert(TextWriter writer, object state)
{
Utils.InvokeMethod(target, "Convert", writer, state);
}
public void ActivateOptions()
{
Utils.InvokeMethod(target, "ActivateOptions");
}
}
}
}