// File: MarkOates[P]file-downloader/test_file_downloader.cpp
// Function: FileDownloader_will_set_an_error_message_of_404_when_a_file_url_does_not_exist_invoker()
BOOST_AUTO_TEST_CASE(FileDownloader_will_set_an_error_message_of_404_when_a_file_url_does_not_exist)
{
   std::string file_url = "https://www.allegro.cc/this_file_does_not_exist.png";
   std::string local_filename = "";
   FileDownloader::FileHandle handle = FileDownloader::download_file(file_url, local_filename);

   BOOST_CHECK_EQUAL("404", handle.get_error());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x9c0, %rsp            # imm = 0x9C0
movq 0xc6ae(%rip), %rax      # 0x15280
movq %rax, -0x8e8(%rbp)
leaq 0x6595(%rip), %rsi      # 0xf175
leaq -0x10(%rbp), %rdi
movl $0x18, %edx
callq 0xa680
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0x8e0(%rbp)
xorl %esi, %esi
movl $0x198, %edx            # imm = 0x198
callq 0x3180
movq -0x8e0(%rbp), %rdi
callq 0xb9c0
movq -0x8e0(%rbp), %rdi
callq 0xb9f0
movq %rax, %rdi
movb $0x22, -0x1b9(%rbp)
leaq -0x1b9(%rbp), %rsi
callq 0xb980
movq %rax, -0x8d8(%rbp)
jmp 0x8c3f
movq -0x8d8(%rbp), %rdi
leaq 0x6864(%rip), %rsi      # 0xf4b1
callq 0xbff0
movq %rax, -0x8f0(%rbp)
jmp 0x8c5b
movq -0x8f0(%rbp), %rdi
leaq 0x697e(%rip), %rsi      # 0xf5e7
callq 0xb920
movq %rax, -0x8f8(%rbp)
jmp 0x8c77
movq -0x8f8(%rbp), %rdi
callq 0xba00
movq %rax, -0x900(%rbp)
jmp 0x8c8c
movq -0x900(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0xb8c0
jmp 0x8c9e
movq -0x8e8(%rbp), %rdi
leaq -0x10(%rbp), %rsi
movl $0x5f, %edx
leaq -0x20(%rbp), %rcx
callq 0x3130
jmp 0x8cb9
leaq -0x1b8(%rbp), %rdi
callq 0xba50
movq 0xc5b4(%rip), %rax      # 0x15280
movq %rax, -0x918(%rbp)
leaq 0x649b(%rip), %rsi      # 0xf175
leaq -0x1e0(%rbp), %rdi
movl $0x18, %edx
callq 0xa680
leaq -0x388(%rbp), %rdi
movq %rdi, -0x910(%rbp)
xorl %esi, %esi
movl $0x198, %edx            # imm = 0x198
callq 0x3180
movq -0x910(%rbp), %rdi
callq 0xb9c0
movq -0x910(%rbp), %rdi
callq 0xb9f0
movq %rax, %rdi
movb $0x22, -0x389(%rbp)
leaq -0x389(%rbp), %rsi
callq 0xb980
movq %rax, -0x908(%rbp)
jmp 0x8d3c
movq -0x908(%rbp), %rdi
leaq 0x6767(%rip), %rsi      # 0xf4b1
callq 0xbff0
movq %rax, -0x920(%rbp)
jmp 0x8d58
movq -0x920(%rbp), %rdi
leaq 0x6890(%rip), %rsi      # 0xf5f6
callq 0xba80
movq %rax, -0x928(%rbp)
jmp 0x8d74
movq -0x928(%rbp), %rdi
callq 0xba00
movq %rax, -0x930(%rbp)
jmp 0x8d89
movq -0x930(%rbp), %rsi
leaq -0x1f0(%rbp), %rdi
callq 0xb8c0
jmp 0x8d9e
movq -0x918(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
movl $0x5f, %edx
leaq -0x1f0(%rbp), %rcx
callq 0x3130
jmp 0x8dbf
leaq -0x388(%rbp), %rdi
callq 0xba50
leaq -0x1cd(%rbp), %rdi
callq 0xc020
movq 0xc4a2(%rip), %rax      # 0x15280
movq %rax, -0x948(%rbp)
leaq 0x6389(%rip), %rsi      # 0xf175
leaq -0x3a0(%rbp), %rdi
movl $0x18, %edx
callq 0xa680
leaq -0x548(%rbp), %rdi
movq %rdi, -0x940(%rbp)
xorl %esi, %esi
movl $0x198, %edx            # imm = 0x198
callq 0x3180
movq -0x940(%rbp), %rdi
callq 0xb9c0
movq -0x940(%rbp), %rdi
callq 0xb9f0
movq %rax, %rdi
movb $0x22, -0x549(%rbp)
leaq -0x549(%rbp), %rsi
callq 0xb980
movq %rax, -0x938(%rbp)
jmp 0x8e4e
movq -0x938(%rbp), %rdi
leaq 0x6655(%rip), %rsi      # 0xf4b1
callq 0xbff0
movq %rax, -0x950(%rbp)
jmp 0x8e6a
movq -0x950(%rbp), %rdi
leaq 0x678e(%rip), %rsi      # 0xf606
callq 0xbad0
movq %rax, -0x958(%rbp)
jmp 0x8e86
movq -0x958(%rbp), %rdi
callq 0xba00
movq %rax, -0x960(%rbp)
jmp 0x8e9b
movq -0x960(%rbp), %rsi
leaq -0x3b0(%rbp), %rdi
callq 0xb8c0
jmp 0x8eb0
movq -0x948(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
movl $0x5f, %edx
leaq -0x3b0(%rbp), %rcx
callq 0x3130
jmp 0x8ed1
leaq -0x548(%rbp), %rdi
callq 0xba50
leaq -0x1cd(%rbp), %rdi
callq 0x91c0
movq 0xc390(%rip), %rax      # 0x15280
movq %rax, -0x978(%rbp)
leaq 0x6277(%rip), %rsi      # 0xf175
leaq -0x560(%rbp), %rdi
movl $0x18, %edx
callq 0xa680
leaq -0x708(%rbp), %rdi
movq %rdi, -0x970(%rbp)
xorl %esi, %esi
movl $0x198, %edx            # imm = 0x198
callq 0x3180
movq -0x970(%rbp), %rdi
callq 0xb9c0
movq -0x970(%rbp), %rdi
callq 0xb9f0
movq %rax, %rdi
movb $0x22, -0x709(%rbp)
leaq -0x709(%rbp), %rsi
callq 0xb980
movq %rax, -0x968(%rbp)
jmp 0x8f60
movq -0x968(%rbp), %rdi
leaq 0x6543(%rip), %rsi      # 0xf4b1
callq 0xbff0
movq %rax, -0x980(%rbp)
jmp 0x8f7c
movq -0x980(%rbp), %rdi
leaq 0x6689(%rip), %rsi      # 0xf613
callq 0xbb00
movq %rax, -0x988(%rbp)
jmp 0x8f98
movq -0x988(%rbp), %rdi
callq 0xba00
movq %rax, -0x990(%rbp)
jmp 0x8fad
movq -0x990(%rbp), %rsi
leaq -0x570(%rbp), %rdi
callq 0xb8c0
jmp 0x8fc2
movq -0x978(%rbp), %rdi
leaq -0x560(%rbp), %rsi
movl $0x5f, %edx
leaq -0x570(%rbp), %rcx
callq 0x3130
jmp 0x8fe3
leaq -0x708(%rbp), %rdi
callq 0xba50
leaq -0x1cd(%rbp), %rdi
callq 0xc040
movq 0xc27e(%rip), %rax      # 0x15280
movq %rax, -0x9a8(%rbp)
leaq 0x6165(%rip), %rsi      # 0xf175
leaq -0x720(%rbp), %rdi
movl $0x18, %edx
callq 0xa680
leaq -0x8c8(%rbp), %rdi
movq %rdi, -0x9a0(%rbp)
xorl %esi, %esi
movl $0x198, %edx            # imm = 0x198
callq 0x3180
movq -0x9a0(%rbp), %rdi
callq 0xb9c0
movq -0x9a0(%rbp), %rdi
callq 0xb9f0
movq %rax, %rdi
movb $0x22, -0x8c9(%rbp)
leaq -0x8c9(%rbp), %rsi
callq 0xb980
movq %rax, -0x998(%rbp)
jmp 0x9072
movq -0x998(%rbp), %rdi
leaq 0x6431(%rip), %rsi      # 0xf4b1
callq 0xbff0
movq %rax, -0x9b0(%rbp)
jmp 0x908e
movq -0x9b0(%rbp), %rdi
leaq 0x658a(%rip), %rsi      # 0xf626
callq 0xb920
movq %rax, -0x9b8(%rbp)
jmp 0x90aa
movq -0x9b8(%rbp), %rdi
callq 0xba00
movq %rax, -0x9c0(%rbp)
jmp 0x90bf
movq -0x9c0(%rbp), %rsi
leaq -0x730(%rbp), %rdi
callq 0xb8c0
jmp 0x90d4
movq -0x9a8(%rbp), %rdi
leaq -0x720(%rbp), %rsi
movl $0x5f, %edx
leaq -0x730(%rbp), %rcx
callq 0x3130
jmp 0x90f5
leaq -0x8c8(%rbp), %rdi
callq 0xba50
addq $0x9c0, %rsp            # imm = 0x9C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0xba50
jmp 0x91a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x388(%rbp), %rdi
callq 0xba50
jmp 0x91a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x548(%rbp), %rdi
callq 0xba50
jmp 0x91a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x708(%rbp), %rdi
callq 0xba50
jmp 0x91a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x8c8(%rbp), %rdi
callq 0xba50
movq -0x1c8(%rbp), %rdi
callq 0x3260
nopw %cs:(%rax,%rax)