(_ context.Context, logger *zap.Logger, yamlSpec *mysql.Spec)
| 820 | } |
| 821 | |
| 822 | func decodeMySQLMessage(_ context.Context, logger *zap.Logger, yamlSpec *mysql.Spec) (*models.MockSpec, error) { |
| 823 | mockSpec := models.MockSpec{ |
| 824 | Metadata: yamlSpec.Metadata, |
| 825 | |
| 826 | Created: yamlSpec.CreatedAt, |
| 827 | ReqTimestampMock: yamlSpec.ReqTimestampMock, |
| 828 | ResTimestampMock: yamlSpec.ResTimestampMock, |
| 829 | } |
| 830 | |
| 831 | // Decode the requests |
| 832 | |
| 833 | requests := []mysql.Request{} |
| 834 | for _, v := range yamlSpec.Requests { |
| 835 | req := mysql.Request{ |
| 836 | PacketBundle: mysql.PacketBundle{ |
| 837 | Header: v.Header, |
| 838 | Meta: v.Meta, |
| 839 | }, |
| 840 | } |
| 841 | |
| 842 | switch v.Header.Type { |
| 843 | // connection phase |
| 844 | |
| 845 | case mysql.SSLRequest: |
| 846 | msg := &mysql.SSLRequestPacket{} |
| 847 | err := v.Message.Decode(msg) |
| 848 | if err != nil { |
| 849 | utils.LogError(logger, err, "failed to unmarshal yaml document into mysql SSLRequestPacket") |
| 850 | return nil, err |
| 851 | } |
| 852 | req.Message = msg |
| 853 | |
| 854 | case mysql.HandshakeResponse41: |
| 855 | msg := &mysql.HandshakeResponse41Packet{} |
| 856 | err := v.Message.Decode(msg) |
| 857 | if err != nil { |
| 858 | utils.LogError(logger, err, "failed to unmarshal yaml document into mysql HandshakeResponse41Packet") |
| 859 | return nil, err |
| 860 | } |
| 861 | req.Message = msg |
| 862 | |
| 863 | case mysql.CachingSha2PasswordToString(mysql.RequestPublicKey): |
| 864 | var msg string |
| 865 | err := v.Message.Decode(&msg) |
| 866 | if err != nil { |
| 867 | utils.LogError(logger, err, "failed to unmarshal yaml document into mysql (string) RequestPublicKey") |
| 868 | return nil, err |
| 869 | } |
| 870 | req.Message = msg |
| 871 | |
| 872 | case mysql.EncryptedPassword: |
| 873 | var msg string |
| 874 | err := v.Message.Decode(&msg) |
| 875 | if err != nil { |
| 876 | utils.LogError(logger, err, "failed to unmarshal yaml document into mysql (string) encrypted_password") |
| 877 | return nil, err |
| 878 | } |
| 879 | req.Message = msg |
no test coverage detected