private static object[] ConstructEventWithSource <T>(SourceSystem sourceSystem) where T : IMessage
        {
            var payload = PayloadHelpers.Construct <T>();

            PayloadHelpers.SetField(payload, "source_", sourceSystem); // the name of field is found with decompiler
            return(new object[] { payload });
        }
        public static IEnumerable <object[]> NonStarChefEvents()
        {
            const SourceSystem SOURCE_SYSTEM = SourceSystem.R9; // some source not equal to StarChef

            yield return(ConstructEventWithSource <AccountCreated>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountCreateFailed>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountUpdated>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountUpdateFailed>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountStatusChanged>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountStatusChangeFailed>(SOURCE_SYSTEM));
        }
        public static IEnumerable <object[]> StarChefEvents()
        {
            const SourceSystem SOURCE_SYSTEM = SourceSystem.STARCHEF;

            yield return(ConstructEventWithSource <AccountCreated>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountCreateFailed>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountUpdated>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountUpdateFailed>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountStatusChanged>(SOURCE_SYSTEM));

            yield return(ConstructEventWithSource <AccountStatusChangeFailed>(SOURCE_SYSTEM));
        }