001package org.eclipse.aether.transfer; 002 003/* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022import static org.junit.Assert.*; 023 024import java.nio.ByteBuffer; 025 026import org.eclipse.aether.DefaultRepositorySystemSession; 027import org.eclipse.aether.RepositorySystemSession; 028import org.eclipse.aether.transfer.TransferEvent; 029import org.eclipse.aether.transfer.TransferResource; 030import org.junit.Test; 031 032/** 033 */ 034public class TransferEventTest 035{ 036 037 private static TransferResource res = new TransferResource( "none", "file://nil", "void", null, null ); 038 039 private static RepositorySystemSession session = new DefaultRepositorySystemSession(); 040 041 @Test 042 public void testByteArrayConversion() 043 { 044 byte[] buffer = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 045 int length = buffer.length - 2; 046 int offset = 1; 047 048 TransferEvent event = new TransferEvent.Builder( session, res ).setDataBuffer( buffer, offset, length ).build(); 049 050 ByteBuffer bb = event.getDataBuffer(); 051 byte[] dst = new byte[bb.remaining()]; 052 bb.get( dst ); 053 054 byte[] expected = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }; 055 assertArrayEquals( expected, dst ); 056 } 057 058 @Test 059 public void testRepeatableReadingOfDataBuffer() 060 { 061 byte[] data = { 0, 1, 2, 3, 4, 5, 6, 7 }; 062 ByteBuffer buffer = ByteBuffer.wrap( data ); 063 064 TransferEvent event = new TransferEvent.Builder( session, res ).setDataBuffer( buffer ).build(); 065 066 assertEquals( 8, event.getDataLength() ); 067 068 ByteBuffer eventBuffer = event.getDataBuffer(); 069 assertNotNull( eventBuffer ); 070 assertEquals( 8, eventBuffer.remaining() ); 071 072 byte[] eventData = new byte[8]; 073 eventBuffer.get( eventData ); 074 assertArrayEquals( data, eventData ); 075 assertEquals( 0, eventBuffer.remaining() ); 076 assertEquals( 8, event.getDataLength() ); 077 078 eventBuffer = event.getDataBuffer(); 079 assertNotNull( eventBuffer ); 080 assertEquals( 8, eventBuffer.remaining() ); 081 eventBuffer.get( eventData ); 082 assertArrayEquals( data, eventData ); 083 } 084 085}