001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.commons.fileupload2.core;
018
019import static org.junit.jupiter.api.Assertions.assertFalse;
020import static org.junit.jupiter.api.Assertions.assertNotNull;
021import static org.junit.jupiter.api.Assertions.assertSame;
022
023import org.apache.commons.fileupload2.core.FileItemFactory.AbstractFileItemBuilder;
024import org.junit.jupiter.api.Test;
025
026/**
027 * Tests for {@link DiskFileItem}.
028 */
029public class DiskFileItemTest {
030
031    @Test
032    public void testBuilderHeaders() {
033        final var builder = DiskFileItem.builder();
034        assertNotNull(builder.getFileItemHeaders());
035        final var fileItem = builder.get();
036        assertNotNull(fileItem.getHeaders(), "Missing default headers (empty)");
037        assertFalse(fileItem.getHeaders().getHeaderNames().hasNext());
038        assertNotNull(fileItem.getHeaders());
039        final var fileItemHeaders = AbstractFileItemBuilder.newFileItemHeaders();
040        assertNotNull(fileItemHeaders);
041        fileItem.setHeaders(fileItemHeaders);
042        assertSame(fileItemHeaders, fileItem.getHeaders());
043    }
044
045    /**
046     * Tests FILEUPLOAD-352 NullPointerException in DiskFileItem#toString
047     */
048    @Test
049    public void testToStringDefault() {
050        new DiskFileItem.Builder().get().toString();
051    }
052}