protected override void Given()
            {
                _projectionName = "test-projection";
                _projectionBody = @"fromAll().whenAny(function(s,e){return s;});";
                _testUserPrincipal = new OpenGenericPrincipal(
                    new GenericIdentity("test-user"), new[] {"test-role1", "test-role2"});

                AllWritesSucceed();
                NoOtherStreams();
            }
        private static OpenGenericPrincipal CreatePrincipal(UserData userData)
        {
            var roles = new string[userData.Groups != null ? userData.Groups.Length + 1 : 1];

            if (userData.Groups != null)
            {
                Array.Copy(userData.Groups, roles, userData.Groups.Length);
            }
            roles[roles.Length - 1] = userData.LoginName;
            var principal = new OpenGenericPrincipal(new GenericIdentity(userData.LoginName), roles);

            return(principal);
        }
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _writeAs = new OpenGenericPrincipal("test-user");
            _stream = new EmittedStream(
                "test_stream", new ProjectionVersion(1, 0, 0), _writeAs,
                new TransactionFilePositionTagger(), CheckpointTag.FromPosition(0, -1),
                CheckpointTag.FromPosition(40, 30), _readDispatcher, _writeDispatcher, _readyHandler,
                maxWriteBatchLength: 50);
            _stream.Start();

            _stream.EmitEvents(
                new[]
                    {
                        new EmittedDataEvent(
                    "test_stream", Guid.NewGuid(), "type", "data", null, CheckpointTag.FromPosition(200, 150), null)
                    });

        }