public void Ctor_LogsWarning_WhenOptionsAreInconsistent() { var logger = new TestCaptureLogger <ShortCodeFactory>(); var options = new ShortCodeOptions { CharacterSpace = Encoder.LettersAndDigits, FixedLength = 20, }; var encoder = new Encoder(options.CharacterSpace); _ = new ShortCodeFactory(new Mock <IShortCodeGenerator>().Object, encoder, options, logger); logger.Logs.Count.ShouldBe(1); Console.WriteLine(logger.Logs[0].FormattedMessage); logger.Logs[0].LogLevel.ShouldBe(LogLevel.Warning); logger.Logs[0].FormattedMessage.ShouldStartWith("The Short Code generator will always produce codes with padding"); }
public void GetCodes_ShouldReturnRequiredNumberOfCodes(int numberOfCodes) { var options = new ShortCodeOptions { CharacterSpace = Encoder.LettersAndDigits, FixedLength = 5, }; var factory = new ShortCodeFactory( new GuidCodeGenerator(), new Encoder(Encoder.ReducedAmbiguity), options, new NullLogger <ShortCodeFactory>()); var result = factory.GetCodes(numberOfCodes).ToArray(); result.Length.ShouldBe(numberOfCodes); result.Distinct().Count().ShouldBe(numberOfCodes); }
public void GetNextCode_ShouldReturnCode() { var options = new ShortCodeOptions { CharacterSpace = Encoder.LettersAndDigits, FixedLength = 5, }; var factory = new ShortCodeFactory( new GuidCodeGenerator(), new Encoder(Encoder.ReducedAmbiguity), options, new NullLogger <ShortCodeFactory>()); var result = factory.GetNextCode(); Console.WriteLine(result); result.Length.ShouldBe(5); }